未找到Redis函数

问题描述 投票:0回答:1

我的设置是3主、3从Redis集群,版本7.x。

我创建了一个简单的基于 Lua 的函数:

#!lua name=loggerLib
local function logMsg(keys, args)
    redis.log(redis.LOG_NOTICE, 'Hello!');
end
redis.register_function('logMsg', logMsg)

并将其加载为

cat loggerLib.lua | redis-cli -c -p 7000 -x FUNCTION LOAD REPLACE

但是,当我从 redis 命令提示符执行它时

127.0.0.1:7002> FCALL logMsg 1

我看到错误:

(error) ERR Function not found

我在这里做错了什么?

当我运行它时

127.0.0.1:7000> FCALL logMsg 1 a

我看到错误了

-> Redirected to slot [15495] located at 127.0.0.1:7002
(error) ERR Function not found
redis lua redis-cluster
1个回答
0
投票

我看到错误:(错误)ERR 功能未找到

因为你在一个节点(127.0.0.1:7000)上调用

FUNCTION LOAD
,而在另一个节点(127.0.0.1:7002)上调用
FCALL
。该函数仅在127.0.0.1:7000上加载,其他节点没有加载该函数。

您需要在 Redis 集群中的每个节点上调用

FUNCTION LOAD

我看到错误了

-> 重定向到位于 127.0.0.1:7002 的插槽 [15495] (错误)ERR 未找到函数

因为您的函数尝试操作的密钥位于节点 127.0.0.1:7002 上,并且您的客户端被重定向到它,并且同样,它没有加载该函数。

© www.soinside.com 2019 - 2024. All rights reserved.