Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak przechowywać posortowany zestaw obiektów w redis?

Używanie jednego klucza do przechowywania wszystkich skrótów będzie wymagało pewnej serializacji, ponieważ Redis nie obsługuje zagnieżdżonych struktur danych. Wynik byłby następujący:

key: users:pro
         |
         +-----> field       value
                 name:Bruce  "age: 20, score: 100"
                 name:Ed     "age: 22, score: 80"

> HMSET users:pro name:Bruce "age: 20, score: 100" name:Ed "age:22, score:80"

Odpowiedni posortowany zestaw to:

key: users:pro.by_scores
         |
         +---> scores:    80           100
         +---> values: "name:Ed"   "name:Bruce"

> ZADD users:pro.by_scores 80 "name:Ed" 100 "name:Bruce"

Uwaga 1 :to podejście wymaga unikalnego identyfikatora na użytkownika, obecnie name używana jest właściwość, co może być problematyczne.

Uwaga 2 :aby uniknąć serializacji (i deserializacji), możesz rozważyć użycie dedykowanego klucza na użytkownika. Oznacza to:

key: users:pro:Bruce
         |
         +-----> field       value
                 age         20
                 score       100

key: users:pro:Ed
         |
         +-----> field       value
                 age         22
                 score       80

> HMSET users:pro:Bruce age 20 score 100
> HMSET users:pro:Ed age 22 score 80

key: users:pro.by_scores
         |
         +---> scores:      80                100
         +---> values: "users:pro:Ed"   "users:pro:Bruce"

> ZADD users:pro.by_scores 80 "users:pro:Ed" 100 "users:pro:Bruce"



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dostęp do zmiennej poza funkcją redis pipelining na Laravel

  2. Redis Vs RabbitMQ jako broker danych/system przesyłania wiadomości pomiędzy Logstash a elasticsearch

  3. Redisson, kolejka robocza / dequeu. Strategie przetwarzania wiadomości / elementu w przypadku niekompletnej obsługi wiadomości w systemie / zamknięciu pod

  4. Aby rozpocząć ładowanie YCSB z włączoną opcją klastra dla REDIS

  5. Ruby resque bez ładowania środowiska szyn