1
我想在Redis中存储键值对(T1,T2)。密钥和值都是唯一的。 我希望能够在键和值上进行查询,即HGET(Key)应该返回相应的值,HGET(Value)应该返回相应的Key。Redis哈希:如何查询密钥和值
一个简单的方法是在Redis(T1,T2)和(T2,T1)中创建2个哈希,然后在适当的哈希上查询。这种方法的问题是插入,更新或删除对需要两个哈希中的更新。
有没有更好的方式来满足我的要求...
我想在Redis中存储键值对(T1,T2)。密钥和值都是唯一的。 我希望能够在键和值上进行查询,即HGET(Key)应该返回相应的值,HGET(Value)应该返回相应的Key。Redis哈希:如何查询密钥和值
一个简单的方法是在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)
如果这不是这种情况,那么保持2个独立的哈希值,最好在一个Lua脚本中是合理的。
感谢Ion的回应。 Key和Value都是我当前需求中的字符串,因此我不能在这里使用Sorted Sets,但是您建议的解决方案非常丰富,我希望可以在其他类似需求中使用它:) – 2014-09-24 07:52:26