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

Redis и заявка на стойности

Със сигурност е възможно да моделирате тези данни с Redis, но трябва да мислите по отношение на структурите от данни И пътищата за достъп. С Redis пътищата за достъп не се управляват имплицитно (както при индексите в RDBMS/MongoDB).

За предоставения пример можете да имате:

user:<user hash> -> hash of user properties
user:<user hash>:sent -> set of <msg hash>
user:<user hash>:received -> set of <msg hash>
message:<msg hash> -> hash of message properties

Добавянето/изтриването на съобщение би означавало поддържане на наборите *:sent и *:received, съответстващи на подателите и получателите, в допълнение към добавянето/изтриването на самия обект на съобщението.

Извличането на изпратени или получени съобщения за даден потребител е просто команда SMEMBERS или SORT, ако искате да извлечете и свойствата на съобщението по едно и също време:

# Get a list of message hash codes only in one roundtrip
smembers user:<user hash>:received

# Get a list of message contents in one roundtrip
sort user:<user hash>:received by nosort get message:*->sender get message:*->message

За обосновката относно използването на сортиране вижте:

  • Получаване на множество ключови стойности от Redis
  • Имам нужда от помощ за концептуализиране в Redis/NoSQL

Забележка 1: с Redis е по-добре да използвате цели числа като ключове, а не UUID или хеш кодове (особено в набори), тъй като те се съхраняват по по-ефективен начин.

Забележка 2: ако трябва да поръчате съобщенията, тогава трябва да се използват списъци вместо набори. Резултатът е, че само най-старите съобщения могат да бъдат премахнати и само новите съобщения могат да се добавят по ефективен начин. Вероятно бихте добавили и глобален списък за всички съобщения.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка в командната команда на Redis Enterprise Clustering „CLUSTER“

  2. Lua скрипт и redis - как да тествате за None стойност

  3. как да имате отношения много към много в redis

  4. Използване на Redis за кеширане на SQL резултат

  5. Docker-compose - Redis на 0.0.0.0 вместо 127.0.0.1