CONFIG GET 命令无法从脚本中执行

我正在使用一个 Redis 主节点和多个副本的方案,分布在两个城市,以实现地理冗余。我的问题是,出于某种原因,我需要在 Lua 脚本中知道活动实例运行的城市。我想,很简单:

redis.call("config", "get", "bind"),通过知道服务器 IP 我就可以确定城市。不过并不简单:

$ cat config.lua
redis.call("config", "get", "bind")
$ redis-cli --eval config.lua
(error) ERR Error running script (call to f_9bfbf1fd7e6331d0e3ec9e46ec28836b1d40ba35): @user_script:1: @user_script: 1: This Redis command is not allowed from scripts

为什么无法从脚本中执行 "config" 命令?首先,虽然它并不确定性,但并没有写入命令。其次,我使用的是版本 5.0.4,从版本 5 开始,复制应该是通过效果而不是通过脚本传播完成的。

有什么想法吗?

点赞