keys *阻塞进程,消耗比较大,慎用
#!/bin/bash
host=127.0.0.1
port=6379
output_file="never_expire_keys.txt"
# 获取所有键到 keys.txt 文件中
redis-cli -h $host -p $port keys "*" > keys.txt
# 逐行读取 keys.txt 文件,查询每个键的 TTL
while IFS= read -r mykey; do
result=$(redis-cli -h $host -p $port ttl $mykey)
# 如果 TTL 为 -1,表示键永不过期,将键写入到文件中
if [ $result -eq -1 ]; then
echo $mykey >> $output_file
fi
done < keys.txt
# 删除 keys.txt 文件
rm keys.txt
echo "永不过期的键已写入到 $output_file 文件中"
标签:key,过期,redis,keys,file,txt,port
From: https://www.cnblogs.com/qcy-blog/p/18077120