gpt4 book ai didi

redis - Redis集群上的Lua脚本

转载 作者:可可西里 更新时间:2023-11-01 11:06:09 25 4
gpt4 key购买 nike

我有一个 Redis 集群,我想在目标节点上执行 LUA 脚本。当我这样做时,我从 Redis 集群收到一条错误消息,指出键必须在同一个 SLOT 上,但脚本仅在 1 个键上执行两个命令。

if redis.call('HEXISTS', 'TEST', KEYS[1]) == 1
then
redis.call('HSET', 'TEST', KEYS[1], ARGV[1])
return 1
end
return 0

我尝试使用 Hash Tag Key,但它不起作用。

最佳答案

您收到此错误是因为您正在尝试访问名为 TEST 的 Redis key ,但不要通过在 EVAL 命令中列出它来让 Redis 或您的 Redis 客户端知道它。

Redis Lua 脚本有两个参数列表,一个是通用的 (ARGV[]),另一个是脚本将要访问的键的严格列表 (KEYS[ ]).

您可能已经在 HEXISTS 调用中交换了键名和字段名,即您可能需要使用:

if redis.call('HEXISTS', KEYS[1], 'TEST') == 1
then
redis.call('HSET', KEYS[1], 'TEST', ARGV[1])
return 1
end
return 0

只要 key 名称正确传递给 EVAL 命令,这就应该有效。

关于redis - Redis集群上的Lua脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54236788/

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