sql >> Databasteknik >  >> NoSQL >> Redis

Hur kombinera de sorterade uppsättningarna Redis?

Det finns ett par sätt att göra detta, men det rätta beror på vad du försöker göra. Till exempel:

  1. Du kan använda ZRANGEBYSCORE (eller ZREVRANGEBYSCORE) i din kod för varje FEED:USER:n nyckel och "slå samman" svaren i klienten
  2. Du kan göra en ZUNIONSTORE på relevanta nycklar och sedan göra ZRANGEBYSCORE på resultatet från klienten.
  3. Men om dina "flöden" är stora, bör #2:s flöde vändas - först intervall och sedan union.
  4. Du kan också göra liknande typer av bearbetning helt på serversidan med lite Lua-skript.

EDIT:ytterligare förtydliganden

Re. 1 - Sammanfogning kan göras på klientsidan på resultaten som du får från ZRANGEBYSCORE eller så kan du använda Lua-skript på serversidan för att göra det. Använd WITHSCORES för att få tidsstämpeln och slå samman/sortera på den. Oavsett vilken plats du väljer för att köra den här koden (jag skulle förmodligen använda Lua för datalokalitet), är implementeringen upp till dig - lmk om du behöver hjälp med det :)




  1. MongoDB Regular Expression Search - Börjar med att använda javascript-drivrutinen och NodeJS

  2. Uppdatering av kapslade arrayer i mongoDB via mongo-skal

  3. MongoDB:Hur man hittar ett dokument med ett id inuti ett kapslat dokument

  4. Få den senaste skivan från mongodb collection