Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Khu vực thông báo và tin tức bằng cách sử dụng Redis

Theo ý kiến ​​của tôi, chức năng này nên được xử lý ở phía máy chủ, đặc biệt nếu bạn muốn người dùng sử dụng nhiều loại máy khách (ví dụ:trình duyệt, điện thoại, v.v.)

Mỗi sự kiện của bạn phải có một dấu thời gian để biết khi nào mỗi sự kiện đã xảy ra và để có thể thực hiện tìm kiếm theo phạm vi cho phù hợp, trong trường hợp bạn cần lấy, chẳng hạn như 24 giờ qua của sự kiện hoặc sự kiện sau dấu thời gian X.

Sau đó, khi người dùng theo dõi người dùng khác xem thông báo của họ, bạn có thể đặt dấu thời gian làm điểm kiểm tra để biết người dùng này đã xem sự kiện nào và sau đó chỉ hiển thị các sự kiện sau điểm kiểm tra đó.

Cách tôi đã triển khai thời gian biểu trong REDIS trong một trong các dự án của chúng tôi là sử dụng Bộ phân loại (http://redis.io/topics/data-types#sorted-sets). Trong trường hợp của bạn, bạn có thể lưu trữ:

user1EventsKey -> [{ts1, eventKey1}, {ts2, eventKey2}, {ts3, eventKey3},... ]  
                                                           # This is the sorted set
eventKey1 -> [photo1, photo2, photo3]
eventKey2 -> [photo4, photo5]
...

user2Checkpoint -> tsA   #where  ts2 < tsA < ts3

Bây giờ bạn biết rằng lần sau khi user2 xem thông báo, bạn sẽ chỉ hiển thị bất kỳ sự kiện nào diễn ra sau tsA bằng cách sử dụng ZRANGEBYSCORE user1EventsKey ts2 +inf để nhận tất cả các khóa sự kiện và sau đó từng khóa một, bạn có thể hiển thị các sự kiện.

Tái bút. Dấu thời gian có thể được lưu trữ ở định dạng UNIX.

Tôi hy vọng điều này sẽ hữu ích.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. AWS Lambda và ứng dụng khách Redis. Tại sao tôi gọi lại không được?

  2. Giới thiệu về Redis Cluster Sharding - Ưu điểm, Hạn chế, Triển khai &Kết nối máy khách

  3. Tùy chọn Redis-cli --csv (xuất sang csv)

  4. Điểm của REDIS trong ngăn xếp ELK là gì?

  5. Cách bắt redis.serializer.SerializationException