REDIS KEYの名称に従ってREDIS KEYのttl値をリセットする
664 ワード
いくつかの理由でredisのkeyキャッシュ時間が長く設定されているため、KEYが自動的に削除できないか、削除時間が長すぎるため、KEYに対応するTLL値を再設定する必要があります.次のスクリプトを作成しました.
例えば、ユーザがデータを閲覧するREDISでは、現在のredisのKEYの名前にCACHE:USER_が付いているVIEWDATAのKEYは、数万または数十万程度あり、このクラスのKEYのTTL値を現在の値の1/4に小さくする必要があり、スクリプトをこのように実行することができます.
./modikeyttl.sh CACHE:USER_VIEWDATA
[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