Redis
 sql >> база данни >  >> NoSQL >> Redis

Зона за известия и новини с помощта на Redis

Според мен тази функция трябва да се обработва от страна на сървъра, особено ако очаквате потребителите да използват множество типове клиенти (напр. браузър, телефон и т.н.)

Всяко от вашите събития трябва да има клеймо за време, за да знаете кога се е случило всяко събитие и за да можете да извършвате съответно търсене на диапазон, в случай че трябва да получите, например последните 24 часа събития, или събития след времеви печат X.

След това, когато потребителят, който следва друг потребител, погледне нейните известия, можете да зададете времева марка като контролна точка, за да знаете до кое събитие този потребител вече е видял и след това да покажете само събитията, които са след тази контролна точка.

Начинът, по който внедрих таймсерии в REDIS в един от нашите проекти, е като използвам сортирани набори (http://redis.io/topics/data-types#sorted-sets). Във вашия случай можете да съхранявате:

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

Сега знаете, че следващия път, когато user2 прегледа известията, ще покажете само събитията след tsA, като използвате ZRANGEBYSCORE user1EventsKey ts2 +inf за да получите всички ключове за събития и след това едно по едно можете да покажете събитията.

PS Печатът за време може да се съхранява във формат UNIX.

Надявам се това да помогне.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis pubsub опашка от съобщения, но с обратно извикване, както в ZeroMQ

  2. redis за регистриране

  3. Как мога да преглеждам/разглеждам стойностите, съхранени в Redis

  4. Как да се свържете с Redis контейнер с помощта на Docker Compose?

  5. Защо един екземпляр на джедаите не е нишки?