首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua脚本试图访问群集节点中的非本地密钥。

Lua脚本试图访问群集节点中的非本地密钥。
EN

Stack Overflow用户
提问于 2018-04-03 05:24:41
回答 1查看 3.7K关注 0票数 1

环境: Redis集群

嗨。我的要求是:

查找值-B思想键-A(过程是使用键-A查找值-A,值-A ==键-B,使用键-B查找值-B)

我的lua看起来是这样的

root@ml-208 redis# cat x-userid-tag.lua

代码语言:javascript
复制
local f3=redis.call('HGET',KEYS[1],'1'); local f4=redis.call('HGET',f3,'1') ; return f4;

我的红宝石:

./bin/redis-cli -c -h 192.168.33.203 -p 6000 --eval ./x-userid-tag.lua 0C559F3FEF368A8B53DE69C267423F0E

error msg:(错误)错误运行脚本(调用f_9bd20ba85f7bcc8ee1f6b55c4158bfa93eba2221):@user_script:2:@user_script: 2: Lua脚本试图访问集群节点中的非本地密钥

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 09:00:30

Lua脚本只在一个redis实例上运行,它的内部查询不会被集群重定向,因此,如果两个键存在于另一个集群中,它就不能查询它们。

在您的示例中,keyA和valueA(即keyB)被散列到不同的时隙和不同的节点,因此lua将无法工作。

修复它的一种方法是将以下内容作为键和值。

如果您有‘key2 1’,其值为‘value 1’,而不是将其值/key2 2保持为‘value 1’,则应该将其保持为‘{key1}:value 1’。Redis将确保'key1‘和’{key1}:value1 1‘都被散列到一个节点上,并且您可以使用lua查询这两个节点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49622787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档