Redis Commander 查看最新添加Key及对应数据的命令是什么?
Redis+Bull队列故障排查命令参考
前置说明
Redis本身默认不存储Key的创建时间,无法直接通过原生命令全局筛选最新创建的Key。但Bull队列生成的任务Key有固定规则,且任务ID为自增数字,ID越大代表任务越新,可通过该规律快速定位最新任务。
禁止在生产环境执行KEYS *命令,该命令会全库遍历阻塞Redis实例,影响业务正常运行,所有Key查询操作使用SCAN系列命令。
操作命令(可直接在Redis Commander控制台执行)
需求1:获取最新10个Key
仅查询Bull队列相关Key(推荐,速度快)
执行命令:SCAN 0 MATCH bull:*:job:* COUNT 200
返回结果分为两部分:第一部分为下次扫描的游标(如果返回0代表已扫描完所有匹配Key),第二部分为匹配到的Key列表,Key格式为bull:{队列名}:job:{自增ID}。将返回Key的ID部分按数字从大到小排序,取前10个即为最新的10个Bull任务Key。
查询全库最新Key(按需使用)
如果需要排查非Bull的Key,先执行以下命令拿到一批Key:SCAN 0 MATCH * COUNT 200
再对每个Key执行以下命令查询空闲时间:OBJECT IDLETIME {key名称}
返回值为Key的空闲秒数,数值越小代表该Key最近被操作(创建/修改/读取)的时间越新,取数值最小的10个即可。
需求2:查询指定Key的对应数据
拿到目标Key后,根据Key类型执行对应命令:
- Bull队列任务默认是哈希类型,执行:
HGETALL {key名称},可直接查看任务的完整信息,包括API调用参数、执行状态、错误日志等排查所需内容 - 字符串类型Key执行:
GET {key名称} - 列表类型Key执行:
LRANGE {key名称} 0 -1
命令行redis-cli批量操作命令(若有权限访问Redis服务端可直接使用)
直接输出最新10个Bull任务Key
redis-cli --scan --pattern "bull:*:job:*" | sort -t ':' -k 4 -nr | head -n 10
查询单个Key数据
# 哈希类型(Bull任务用) redis-cli HGETALL {key名称} # 字符串类型 redis-cli GET {key名称}
内容的提问来源于stack exchange,提问作者Ben in CA
相关产品推荐
相关产品推荐

