Redis Monitor带身份验证执行报错,求指定数据库的正确redis-cli命令
Redis带认证MONITOR命令报错解决方案
报错原因
MONITOR是Redis原生的全局诊断命令,本身不接收任何参数,也不支持通过-n参数提前指定目标数据库。你命令中携带的-n <database>参数在部分低版本Redis中会被识别为传递给MONITOR的入参,直接触发参数数量不匹配的报错;高版本中该参数也不会生效,MONITOR默认会输出整个Redis实例所有数据库的执行请求。
正确命令写法
全库监控
直接去掉-n <database>参数即可正常执行:
redis-cli -h <redis_endpoint> -p <port> -a <password> monitor
如果担心密码明文出现在进程列表中存在安全风险,可改用交互式传参的方式:
redis-cli -h <redis_endpoint> -p <port> --askpass monitor
执行后按提示输入密码即可。
指定数据库过滤
如果需要仅查看某一个数据库的监控日志,可通过管道加grep过滤实现,示例为监控db 3的请求:
redis-cli -h <redis_endpoint> -p <port> -a <password> monitor | grep "db:3"
注意事项
- 如果密码包含特殊字符(如!、@、空格等),需要用单引号将密码包裹,比如
-a 'pass@word123' - MONITOR会消耗大量服务器资源,生产环境建议仅在必要时短时间开启,避免影响业务
内容的提问来源于stack exchange,提问作者Noob
相关产品推荐
相关产品推荐

