我想在 Redis 中存储键值对 (T1,T2)。键和值都是唯一的。 我希望能够查询键和值,即 HGET(Key) 应该返回相应的值,而 HGET(Value) 应该返回相应的键。
一种简单的方法是在 Redis (T1,T2) 和 (T2,T1) 中创建 2 个哈希,然后查询适当的哈希。这种方法的问题是插入、更新或删除对将需要更新两个哈希。
有没有更好的方法来满足我的要求...
最佳答案
如果 T1、T2 之一具有整数类型,您可以使用如下组合:
1->foo
2->bar
ZADD myset 1 foo
ZADD myset 2 bar
ZSCORE myset foo //returns 1.0 in O(n)
ZSCORE myset bar //return 2.0 in O(n)
ZRANGEBYSCORE myset 1 1 //returns "foo" in O(log(N)+M)
如果不是这种情况,那么最好在 Lua 脚本中维护 2 个独立的哈希值
关于data-structures - Redis 哈希 : How to Query on both Key and Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010894/