【问题标题】:Redis CLI Rename Key - ERR unknown command RENAME with argsRedis CLI 重命名键 - 带有 args 的 ERR 未知命令 RENAME
【发布时间】:2020-03-24 19:16:46
【问题描述】:

我有一个 redis-cli 脚本,我可以在本地(从 Win10)运行,但是当我使用 rename 命令在服务器 (Linux) 上运行它时它失败了。

连接redis-cli(来自Win10)后,我运行以下命令:

SET "someinstance.domain.us:mytenant:MyDailyData:2018.1.10" "Hello123"
GET "someinstance.domain.us:mytenant:MyDailyData:2018.1.10"
RENAME "someinstance.domain.us:mytenant:MyDailyData:2018.1.10" "TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10"
DEL "TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10"
GET "TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10"

虽然本地一切正常,但当我在服务器上运行它时,我得到以下输出:

my-redis-address:6379> SET "someinstance.domain.us:mytenant:MyDailyData:2018.1.10" "Hello123"
OK
my-redis-address:6379> GET "someinstance.domain.us:mytenant:MyDailyData:2018.1.10"
"Hello123"
my-redis-address:6379> RENAME "someinstance.domain.us:mytenant:MyDailyData:2018.1.10" "TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10"

(error) ERR unknown command `RENAME`, with args beginning with: `someinstance.domain.us:mytenant:MyDailyData:2018.1.10`, `TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10`,

my-redis-address:6379> DEL "TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10"
(integer) 0
my-redis-address:6379> GET "TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10"
(nil)
my-redis-address:6379>

(错误)ERR 未知命令重命名,args 开头为:someinstance.domain.us:mytenant:MyDailyData:2018.1.10, TEMP:someinstance.domain.us:mytenant:MyDailyData:2018.1.10,

redis 服务器详情:

gcc_version 5.4.0
os  Linux 4.4.0-176-generic x86_64
redis_build_id  452d9690a8de23a2
redis_mode  standalone
redis_version   5.0.7

我在这里做错了什么?是我在 Linux Redis 服务器上运行 Win10 cli 导致的吗?

谢谢!

【问题讨论】:

    标签: redis redis-cli


    【解决方案1】:

    结论

    RENAME 命令已在您的服务器上重命名为无意义的名称。

    解决方案

    查看服务器上的redis.conf文件是否有rename-command RENAME xxx这一行。如果有,注释掉,重启Redis服务器。(如果服务器在线,请先联系管理员)

    来自 redis.conf

    # It is possible to change the name of dangerous commands in a shared
    # environment. For instance the CONFIG command may be renamed into something
    # hard to guess so that it will still be available for internal-use tools
    # but not available for general clients.
    #
    # Example:
    #
    # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
    

    【讨论】:

    • 你是对的,该命令在配置中被“禁用”。我不知道可以通过这种方式通过配置禁用某些命令,但我现在知道了。此外,Redis 消息可能更具描述性,包括“或已重命名”“或已配置”,就像这样。无论如何,感谢您的帮助!
    猜你喜欢
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2019-01-07
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多