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

Hvordan kombinerer de sorterede sæt Redis?

Der er et par måder at gøre dette på, men den rigtige afhænger af, hvad du prøver at gøre. For eksempel:

  1. Du kan bruge ZRANGEBYSCORE (eller ZREVRANGEBYSCORE) i din kode for hver FEED:USER:n tast og "flet" svarene i klienten
  2. Du kan lave en ZUNIONSTORE på de relevante taster og derefter lave ZRANGEBYSCORE på resultatet fra klienten.
  3. Men hvis dine "feeds" er store, skal #2's flow vendes - først interval og derefter union.
  4. Du kan også udføre lignende typer behandling udelukkende på serversiden med noget Lua-scripting.

EDIT:yderligere præciseringer

Vedr. 1 - Sammenlægning kan udføres på klientsiden på de resultater, du får fra ZRANGEBYSCORE, eller du kan bruge Lua-scripts på serversiden til at gøre det. Brug WITHSCORES til at få tidsstemplet og flette/sortere på det. Uanset dit valg af placering for at køre denne kode (jeg ville nok bruge Lua til datalokalitet), er implementeringen op til dig - lmk hvis du har brug for hjælp til det :)




  1. Hvordan fjerner man et felt fuldstændigt fra et MongoDB-dokument?

  2. Hvordan forespørger man MongoDB direkte fra Ruby i stedet for at bruge Mongoid?

  3. mongodb sorteringsrækkefølge på _id

  4. Redis serialisering og deserialisering