Wenn mehrere Schlüssel auf denselben Wert zeigen, wird dies in Redis vorerst nicht unterstützt, siehe issue #2668.
Sie benötigen eine Problemumgehung.
Einige Ideen unten, möglicherweise offensichtlich oder dumm :)
Vielleicht ein Zwischenschlüssel:
- user_10
→ id_123
- driver_5
→ id_123
- id_123
→ data_that_you_dont_want_to_duplicate
Sie könnte diese Logik in Ihrem Client-Code oder in benutzerdefinierten Lua-Skripten auf dem Server implementieren, und Lassen Sie Ihren Client-Code diese Skripte verwenden (aber ich weiß nicht genug darüber, um Details anzugeben).
Wenn Sie die Umleitungslogik auf der Client-Seite implementieren, und wenn die Zugriffe unsymmetrisch sind, z. B. 99% der Zeit über die Benutzer-Taste und 1% der Zeit über den Treiber-Schlüssel, kann dies vermieden werden 2 Client-Server-Roundtrips für den 99% Fall. Dazu können Sie Weiterleitungen kodieren. Zum Beispiel, wenn das erste Zeichen #
ist, dann ist der Rest die Daten. Wenn das erste Zeichen @
ist, dann ist der Rest der eigentliche Schlüssel.
user_10
→ #data_that_you_dont_want_to_duplicate
driver_5
→ @user_10
Können Sie erklären, was exacly Ihr Schlüssel ist? Ist es '[user_10, driver_5]' inklusive Klammern? Welchen [redis java client] (https://redis.io/clients#java) verwendest du? Jedis, Jredis? (Ich kenne keine "jdis") –
Ich möchte mehrere Schlüssel hinzufügen, die einzelnen Wert zeigt Angenommen, ich habe drei Schlüssel wie user_1, driver_10, admin_5 und value = "das ist Benutzer" und ich möchte mit Wert zu erhalten irgendeinen Schlüssel unter drei – user3864113