如何在 StackExchange.Redis 中的一个请求中从多个哈希中获取?
How can I HGET from many hashes in one request in StackExchange.Redis?
我有大约 1000 个哈希值,其中一些具有相同的密钥,即
Hash1 = {1: 1, 2: 1, 3: 5, 4: 7...}
Hash2 = {1: 4, 3: 5, 9: 7...}
Hash3 = {5: 4, 8: 5, 9: 7...}
...
我想获取所有散列中的所有键 1
值。我可以这样做:
List<value> values = new();
foreach (string hashKey in hashKeys)
{
values.Add(await _client.HashGetAsync(hashKey, "1"));
}
return values;
但这与 Redis 的网络连接 hashKeys.Count()
次。我可以只在一个网络请求中执行此操作吗?
不是 直接通过内置 API - 没有一个 redis API 可以实现这一点。但是,您 可以 使用 Lua (ScriptEvaluate
),传入多个键,在 Lua 代码中循环,并通过调用构建结果数组hget
重复。
我有大约 1000 个哈希值,其中一些具有相同的密钥,即
Hash1 = {1: 1, 2: 1, 3: 5, 4: 7...}
Hash2 = {1: 4, 3: 5, 9: 7...}
Hash3 = {5: 4, 8: 5, 9: 7...}
...
我想获取所有散列中的所有键 1
值。我可以这样做:
List<value> values = new();
foreach (string hashKey in hashKeys)
{
values.Add(await _client.HashGetAsync(hashKey, "1"));
}
return values;
但这与 Redis 的网络连接 hashKeys.Count()
次。我可以只在一个网络请求中执行此操作吗?
不是 直接通过内置 API - 没有一个 redis API 可以实现这一点。但是,您 可以 使用 Lua (ScriptEvaluate
),传入多个键,在 Lua 代码中循环,并通过调用构建结果数组hget
重复。