更新时间:2026-02-06 GMT+08:00
分享

重命名DCS实例高危命令

Redis实例创建之后,支持修改部分高危命令,命令修改后,仅修改者知晓修改后的命令,其他用户执行原始命令时会被拦截报错,通过此方式可以限制高危命令的使用。

约束与限制

  • 仅Redis 4.0及以上版本的实例,支持命令重命名功能。
  • 当前支持重命名的高危命令有command、keys、flushdb、flushall、hgetall、scan、hscan、sscan和zscan,Proxy集群实例还支持dbsize和dbstats命令重命名,其他命令暂时不支持。
  • 单机、主备、Cluster集群实例进行命令重命名的过程中可能会自动重启实例,重启单机实例将会清空数据,请谨慎操作。详情请参考重命名过程中是否会重启实例
  • 重命名操作完成后立即生效。因为涉及安全性,页面不会显示重命名后的命令。如果忘记重命名后的命令,重新执行命令重命名即可。
  • 实例支持多次执行重命名操作,每次新的重命名操作都会覆盖之前的重命名操作。(例如,命令command和keys重命名后,再增加重命名flushdb时,需要将命令command和keys一起重命名,否则命令command和keys会恢复原命令)。
  • 命令不能重命名为除本命令外的其他原始命令,例如,keys命令可以命名为keys本身或非命令abc123,但不可以重命名为scan等其他原始命令。
  • 重命名的命令必须以字母开头,长度范围为4~64个字符,且只能包含字母、数字、中划线和下划线。

重命名高危命令

  1. 登录分布式缓存服务管理控制台
  2. 在管理控制台左上角单击,选择实例所在的区域。
  3. 单击左侧菜单栏的“缓存管理”。
  4. 执行命令重命名有以下两种操作入口,您可以任选一种,操作结果相同。

    操作方式一:

    1. 在缓存管理页面,单击需要进行命令重命名的缓存实例右侧“操作”列下的“更多 > 命令重命名”。
    2. 在“命令重命名”对话框中,选择需要重命名的高危命令,并在“重命名”框中输入重命名名称,单击“确定”。

      页面中的“重命名记录”会显示该命令是否已被重命名(“已修改”或“未修改”),已经修改过的命令也可以再次重命名。可以同时为多个命令进行重命名。

      图1 命令重命名1

    操作方式二:

    1. 在缓存管理页面,单击需要进行重命名命令的缓存实例名称,进入该实例的概览页面。
    2. 选择“实例配置 > 命令重命名”。
    3. 单击需要重命名命令后的“修改”,在重命名输入框中输入重命名后的命令,单击“保存”。

      也可以单击“批量重命名”,同时在多个重命名输入框中输入重命名后的命令,单击“保存”。

      命令被重命名后,重命名列会显示*号,已经修改过的命令也可以再次重命名。

      图2 命令重命名2

  5. 在“命令重命名”对话框中,选择需要重命名的高危命令,并在“重命名”框中输入重命名名称,单击“确定”。

    页面中的“重命名记录”会显示该命令是否已被重命名(“已修改”或“未修改”),已经修改过的命令也可以再次重命名。可以同时为多个命令进行重命名。

    图3 命令重命名

  6. 命令重命名后,您可以在“后台任务”页面查看重命名的操作记录。

    仅支持查看重命名操作记录,无法查看重命名后的命令,如果忘记重命名后的命令,可以重新执行重命名。

    图4 命令重命名操作记录

执行重命名命令的结果

例如将flushall命令重命名后,连接实例并执行该命令时,Redis会返回错误提示:(error) ERR ERR unknown command `flushall`。

重命名过程中是否会重启实例

  • Proxy集群实例和读写分离实例命令重命名不会重启实例。
  • 单机、主备、或Cluster集群实例在执行命令重命名时,如果操作窗口中提示“重命名的过程中会重启实例”(如图5所示),则重命名过程会重启实例,如果操作窗口中没有该提示,重命名过程中不会重启实例。

    单机、主备、或Cluster集群实例重命名过程中是否重启实例,与实例的小版本有关,如果提示“重命名的过程中会重启实例”,建议您重命名前升级实例小版本为最新版本,再执行命令重命名。

    图5 命令重命名窗口

相关文档

DCS支持通过API查询实例重命名的命令,具体操作请参见查询实例重命名的命令

相关文档