通过 disable-command-list 配置禁用命令

最近更新时间:2026-07-07 16:58:31

我的收藏

操作场景

Redis 协议的部分命令使用不当可能导致服务不稳定或数据误删除,例如 KEYSFLUSHALLFLUSHDB 等命令执行时间过长或影响范围过大,在生产环境中应避免线上使用。腾讯云分布式缓存数据库支持通过配置参数 disable-command-list,禁用指定命令。命令被禁用后,将不允许在该实例中执行。
说明:
disable-command-list 的取值为一个或多个命令名称,多个命令之间以英文逗号分隔(例如 flushall,flushdb,keys)。支持禁用的命令包括 flushallflushdbkeyshgetallevalevalshascript 等,具体支持范围以控制台参数列表中「参考值」列出的命令为准。

前提条件

已创建腾讯云分布式缓存数据库实例。
实例的控制台参数列表中可见 disable-command-list 参数。若不可见,请 提交工单 升级后台版本(版本升级会有连接闪断,重新连接即可)。

操作步骤

步骤一:配置 disable-command-list 参数

2. 在右侧实例列表页面上方,选择地域。
3. 在实例列表中,找到目标实例。
4. 单击目标实例 ID,进入实例详情页面。
5. 在实例详情页面,选择参数配置 页面。
6. 可修改参数页签,在参数列表中,找到 disable-command-list 参数行,在当前运行参数值列,将鼠标放在参数值上面,单击

修改参数值。具体如何修改,请参见 管理实例参数
说明:
支持禁用的命令包括 flushall、flushdb、keys、hgetall、eval、evalsha、script 等,具体支持的禁用命令,请以实际参数列表中参考值列出来的为准。
配置禁用参数后会在2分钟内生效,禁用命令参数不会重启 Redis 服务,对存量连接生效。


步骤二:验证命令已禁用

通过客户端连接实例后,执行已禁用的命令,服务端将返回报错,说明禁用已生效。以 redis-cli 为例:
redis-cli -h <实例连接地址> -p <端口> -a <密码>
<实例连接地址>:<端口>> keys *
(error) ERR command keys is disabled
说明:
上述报错信息为示意,实际返回文案以内核版本真实输出为准。

取消禁用命令

可修改参数页签中,找到 disable-command-list 参数行,在当前运行参数值的禁用列表中删除相应的命令,即可取消对该命令的禁用。

补充说明

被禁用的命令将无法在实例中执行,请确认业务代码中不再依赖这些命令后再进行禁用,避免因命令被禁导致业务报错。
建议优先禁用时间复杂度高或危险程度高的命令(如 keysflushallflushdb);对于全量遍历需求,推荐改用 scan 渐进式处理。
可在参数配置修改历史页签中,查看 disable-command-list 的历次修改记录。