1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #!/bin/bash
# 设置要遍历的 Redis 数据库数量 db_count=16
# 输出文件名 output_file="never_expire_keys.txt"
# 循环遍历 0 到 15 的数据库 for (( db=0; db<$db_count; db++ )); do echo "正在检查数据库 $db 的永不过期键..." # 连接到当前数据库 redis-cli select $db # 查询当前数据库中的所有键,并检查它们的 TTL redis-cli keys "*" | while read -r key; do ttl=$(redis-cli ttl "$key") # 如果 TTL 等于 -1,表示键永不过期 if [ "$ttl" -eq -1 ]; then # 将永不过期的键和它所属的数据库编号写入文件 echo "$db:$key" >> "$output_file" fi done done
echo "永不过期的键已写入到 $output_file 文件中"
|