根据REDIS KEY的名称重置REDIS KEY的ttl值

由于某些原因redis中的key缓存时间设置得过久,造成KEY不能自动删除,或者删除的时间过长,需要重新设置一下对应KEY的TLL值。所以做了以下脚本:

[root@REDIS-1 bin]# cat modikeyttl.sh
#挑出指定要修改TTL值的KEY到tempkey
#/usr/local/redis/bin/redis-cli keys "*" |grep $1 >tempkey
#开始循环KEY
for i in $(cat ./tempkey)
do
#依次取当前KEY的TTL值
oldttl=`/usr/local/redis/bin/redis-cli  ttl $i`
#将TTL值缩短到当前TTL的四分之一
newttl=`expr $oldttl / 4`
#改写成新的TTL值
/usr/local/redis/bin/redis-cli expire $i $newttl
done

比如用户浏览数据的REDIS中,当前redis中有一类KEY的名称中带CACHE:USER_VIEWDATA的KEY,大概有几万或者几十万不等,需要将该类KEY的TTL值减小到为当前值的1/4,于是可以将该脚本如此执行:

./modikeyttl.sh CACHE:USER_VIEWDATA


你可能感兴趣的:(NOSQL)