sql >> Database >  >> NoSQL >> Redis

Meerdere sleutels die verwijzen naar een enkele waarde in Redis (Cache) met java

Het hebben van meerdere sleutels die naar dezelfde waarde verwijzen, wordt momenteel niet ondersteund in Redis, zie probleem #2668.

Je hebt een tijdelijke oplossing nodig.

Enkele ideeën hieronder, mogelijk voor de hand liggend of stom :)

Misschien een tussensleutel hebben:
- user_10id_123
- driver_5id_123
- id_123data_that_you_dont_want_to_duplicate

Je zou die logica in je klantcode kunnen implementeren, of in aangepaste Lua-scripts op de server, en je klantcode die scripts laten gebruiken (maar daar weet ik niet genoeg van om details te geven).

Als u de indirecte logica aan de clientzijde implementeert, en als de toegangen onevenwichtig zijn, bijvoorbeeld 99% van de tijd toegang tot gegevens via de gebruikerssleutel en 1% van de tijd via de bestuurderssleutel, kan het de moeite waard zijn om 2 client-servers te vermijden retourvluchten voor het 99% geval. Hiervoor kun je omleidingen coderen. Als het eerste teken bijvoorbeeld # . is dan zijn de rest de gegevens. Als het eerste teken @ is dan is de rest de eigenlijke sleutel.

  • user_10#data_that_you_dont_want_to_duplicate
  • driver_5@user_10


  1. Hoe de vervaldatum in te stellen op meerdere sleutels in Redis

  2. Is er een manier om recent verwijderde documenten in MongoDB te herstellen?

  3. MongoDB - kopieer verzameling in Java zonder alle items in een lus te plaatsen

  4. Mongoose trekt ObjectId uit array