Redis
 sql >> Base de données >  >> NoSQL >> Redis

Clé multiple pointant vers une valeur unique dans Redis (cache) avec java

Avoir plusieurs clés pointant vers la même valeur n'est pas pris en charge dans Redis pour l'instant, voir le problème #2668.

Vous auriez besoin d'une solution de contournement.

Quelques idées ci-dessous, peut-être évidentes ou stupides :)

Peut-être avoir une clé intermédiaire :
- user_10id_123
- driver_5id_123
- id_123data_that_you_dont_want_to_duplicate

Vous pouvez implémenter cette logique dans votre code client ou dans des scripts Lua personnalisés sur le serveur, et faire en sorte que votre code client utilise ces scripts (mais je n'en sais pas assez pour fournir des détails).

Si vous implémentez la logique d'indirection côté client, et si les accès sont déséquilibrés, par exemple vous accéderiez aux données via la clé utilisateur 99% du temps, et via la clé pilote 1% du temps, cela pourrait valoir la peine d'éviter 2 client-serveur allers-retours pour le cas à 99%. Pour cela vous pouvez encoder les redirections. Par exemple, si le premier caractère est # alors le reste est les données. Si le premier caractère est @ alors le reste est la clé réelle.

  • user_10#data_that_you_dont_want_to_duplicate
  • driver_5@user_10