REDIS KEYの名称に従ってREDIS KEYのttl値をリセットする

664 ワード

いくつかの理由で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