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_10
→ id_123
- driver_5
→ id_123
- id_123
→ data_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