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

Filtrering af elementer i Redis

Hvordan implementerer du det sidste skema i Redis? Er det muligt?

Redis er frit med skemaer . Lad os kalde det, du har brug for, en tilgang til datalagring .

En mulig tilgang er at bruge HSET eller HMSET at tilføje disse JSON-objekter efter id, hvor deres id er nøglen og JSON-teksten er værdien . Vi kalder denne hash som users:byid .

Dette er den første del af problemet. Nu kan du få objekter efter id .

Nu er det næste spørgsmål, at du vil hente objekter i en række af det, du kalder rangering . For at få dette, skal du gemme dine objekter i et sorteret sæt ved hjælp af ZADD . Sorterede sæt er sorteret efter score, og elementer gemmes med en score . Det lyder perfekt til din brug!

Faktisk vil du gemme objekt-id'erne i hele det sorterede sæt:

zadd users:byranking 10 1 5 2

... hvor 10 er scoren (dvs. din faktiske rangeringsværdi) og 1 id og så videre.

Så hvordan filtrerer du varer efter rangering? Bruger ZRANGEBYSCORE :

  • Ved at rangere mellem 0 og 10, eksklusive 10. zrangebyscore users:byranking 0 (10
  • Ved at rangere mellem 0 og 10, inklusive 10. zrangebyscore users:byranking 0 10

Den såkaldte ZRANGEBYSCORE vil give dig id'erne for hentede brugere. Hvordan får du deres JSON-tekst? Brug af HMGET :

 HMGET users:byid 1 2

...hvilket får begge brugere med id 1 og 2 , hvis 10 ranking er inklusive.




  1. Sådan implementeres Percona Server til MongoDB for høj tilgængelighed

  2. Sådan samles efter år-måned-dag i en anden tidszone

  3. Hurtigste måde at fjerne duplikerede dokumenter i mongodb

  4. Hvorfor bruge Redis i stedet for MongoDb til cachelagring?