2017-06-02 2 views
1

Je veux stocker plusieurs clés à valeur unique à l'aide Jedis (cache) Redis avec java.pointage multiple à la valeur clé unique Redis (Cache) avec java

J'ai trois clés comme user_1, driver_10, admin_5 et valeur = this is user, et je veux obtenir la valeur en utilisant une clé parmi ces trois.

+0

Pourriez-vous préciser ce qui est exacly votre clé? Est-ce '[user_10, driver_5]' incluant les crochets? Quel [client redis java] (https://redis.io/clients#java) utilisez-vous? jedis, jredis? (Ne sais pas « jdis ») –

+0

Je veux ajouter plusieurs clés qui pointe valeur unique suppose que j'ai trois clés comme user_1, driver_10, admin_5 et value = « ceci est utilisateur » et je veux obtenir la valeur en utilisant une clé entre trois – user3864113

Répondre

4

Avoir plusieurs clés indiquent même valeur est pas pris en charge dans Redis pour l'instant, voir issue #2668.

Vous auriez besoin d'une solution de contournement.

Quelques idées ci-dessous, peut-être évidente ou stupide :)


ont peut-être une clé intermédiaire:
- user_10id_123
- driver_5id_123
- id_123data_that_you_dont_want_to_duplicate

Vous pourrait implémenter cette logique dans votre code client, ou dans des scripts Lua personnalisés sur le serveur, et que votre code client utilise ces scripts (mais je n'en connais pas assez pour fournir des détails). Si vous implémentez la logique d'indirection du côté client, et si les accès sont déséquilibrés, par exemple si vous accédez aux données via la clé utilisateur 99% du temps, et via la clé du pilote 1% du temps, il peut être utile d'éviter 2 allers-retours client-serveur pour le cas de 99%. Pour cela, vous pouvez encoder des redirections. Par exemple, si le premier caractère est #, le reste est les données. Si le premier caractère est @ alors le reste est la clé actuelle.

  • user_10#data_that_you_dont_want_to_duplicate
  • driver_5@user_10
+0

Je veux ajouter plusieurs clés qui pointe valeur unique suppose que j'ai trois clés comme user_1, driver_10, admin_5 et value = « ceci est utilisateur » et je veux obtenir la valeur en utilisant une clé parmi les trois – user3864113

+1

OK alors je pense avoir bien compris, et la première phrase de ma réponse est pertinente: ce n'est pas supporté actuellement, alors vous pouvez aller commenter le problème de github lié, ou envisager des solutions de contournement. –

+0

ok merci mon pote. – user3864113