data-structures - Redis 哈希 : How to Query on both Key and Value

标签 data-structures hash map redis keyvaluepair

我想在 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)

source

如果不是这种情况,那么最好在 Lua 脚本中维护 2 个独立的哈希值

关于data-structures - Redis 哈希 : How to Query on both Key and Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010894/

相关文章:

python - 有向无环图的高效遍历

c++ - 如何使用键在 C++ 中聚合值?

c# - C# 中 Astar (A*) 图搜索数据的结构

java - 高效的 TableModel 实现

algorithm - 在每个查询的图中为 u 和 v 节点之间的路径找到一些东西(最小/最大/唯一)

Python SHA256 哈希计算

c - 如何使用 ANSI C 获取文件的 sha256 哈希值

java - 为什么我的 map 坏了?

ios - 如何在快速编程中解决这个 EXC_BAD_ACCESS(code=EXC_i386_GPFLT)

c++ - valgrind 疯了还是这是真正的 std 映射迭代器内存泄漏?