操作场景
Redis 协议的部分命令使用不当可能导致服务不稳定或数据误删除,例如
KEYS、FLUSHALL、FLUSHDB 等命令执行时间过长或影响范围过大,在生产环境中应避免线上使用。腾讯云分布式缓存数据库支持通过配置参数 disable-command-list,禁用指定命令。命令被禁用后,将不允许在该实例中执行。说明:
disable-command-list 的取值为一个或多个命令名称,多个命令之间以英文逗号分隔(例如 flushall,flushdb,keys)。支持禁用的命令包括 flushall、flushdb、keys、hgetall、eval、evalsha、script 等,具体支持范围以控制台参数列表中「参考值」列出的命令为准。前提条件
已创建腾讯云分布式缓存数据库实例。
实例的控制台参数列表中可见
disable-command-list 参数。若不可见,请 提交工单 升级后台版本(版本升级会有连接闪断,重新连接即可)。操作步骤
步骤一:配置 disable-command-list 参数
1. 登录 腾讯云分布式缓存数据库控制台。
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 参数行,在当前运行参数值的禁用列表中删除相应的命令,即可取消对该命令的禁用。补充说明
被禁用的命令将无法在实例中执行,请确认业务代码中不再依赖这些命令后再进行禁用,避免因命令被禁导致业务报错。
建议优先禁用时间复杂度高或危险程度高的命令(如
keys、flushall、flushdb);对于全量遍历需求,推荐改用 scan 渐进式处理。可在参数配置的修改历史页签中,查看
disable-command-list 的历次修改记录。