gpt4 book ai didi

hash - 有没有一种方法可以使用 HSCAN(在 JEDIS 中)来检索没有值的键?

转载 作者:行者123 更新时间:2023-12-02 19:35:15 25 4
gpt4 key购买 nike

我正在使用redis(使用Java Redis),并且我想使用包含大量键和每个键中的一些数据(二进制存储)的哈希我想通过 map 的键进行迭代,同时不阻塞服务器;因为有很多进程访问该服务器。

因此,我不想使用 HKEYS 命令。
我想使用 HSCAN 命令或类似的方法。因为我只想要这一步操作中的 key 。

但正如文档所解释的,HSCAN 方法返回:
- 光标
- 键值对的数组
(参见 scanhscan (信息不多,引用最后一个链接))

正如我所说,我只想收到 key ;不是值(value)观。但 HSCAN 方法返回两者,我担心它会损害服务器和我的应用程序的性能。

我一直在搜索文档和论坛,但没有找到回应。但如果有人知道更好,请告诉我。

知道 SCAN 方法可以按我想要的方式工作,但 HSCAN 却不能......不知道为什么,这让我有点烦恼。

谢谢

最佳答案

虽然 HSCAN 确实返回哈希中的字段值对,但您可以使用服务器端 Lua 脚本转换输出以过滤值(有关详细信息,请参阅 EVAL)。这将减少网络使用和客户端负载,但代价是使服务器工作(稍微)更加困难。

以下脚本提供了可能的实现:

local key = KEYS[1]
local cursor = ARGV[1]
local res = redis.call('HSCAN', key, cursor)
local rep = { res[1], {} }
for i=1, #res[2], 2 do
table.insert(rep[2], res[2][i])
end
return rep

关于hash - 有没有一种方法可以使用 HSCAN(在 JEDIS 中)来检索没有值的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57921543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com