sql >> Database teknologi >  >> NoSQL >> Redis

Hvordan gemmer man sorteret sæt objekter i redis?

Brug af en enkelt nøgle til at gemme alle dine hashes vil kræve en vis serialisering, da Redis ikke understøtter indlejrede datastrukturer. Resultatet ville være følgende:

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"

Det tilsvarende sorterede sæt ville være:

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

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

Bemærkning 1 :denne tilgang kræver et unikt ID pr. bruger, i øjeblikket name egenskab bruges, hvilket kunne være problematisk.

Bemærkning 2 :For at undgå serialisering (og deserialisering), kan du overveje at bruge en dedikeret nøgle pr. bruger. Det betyder at gøre:

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. Gruppér efter værdier og forhold

  2. LogicException:Sørg for, at PHP Redis-udvidelsen er installeret og aktiveret

  3. MongoDB $strcasecmp

  4. Hvordan indsætter man resque-arbejdere i produktionen?