データベースscrumblr
として使用されるWebアプリケーションをインストールしました。redis
私がやろうとしているのは、30日間非アクティブであるか、30日間アクセスされなかったすべてのキーを削除することです。
私は走った
redis-cli KEYS*
すべてのキーを返しますが、タイムスタンプは表示しません。
すべての非アクティブキーを見つけて削除するスクリプトまたはコマンドは、毎日特定の時間に実行できますか?
ベストアンサー1
使用できるオブジェクトアイドル時間指定されたキーに格納されているオブジェクトがアイドル状態(読み取りまたは書き込み操作で要求されていない)からの秒数を返すコマンドです。
サンプルコードは次のとおりです。
#!/bin/sh
redis-cli -p 6379 keys "*" | while read LINE ;
do
val=`redis-cli -p 6379 object idletime $LINE`;
if [ $val -gt $((30 * 24 * 60 * 60)) ];
then
echo "$LINE";
# del=`redis-cli -p 6379 del $LINE`; # be careful with del
# echo $del;
fi
done;
状況に応じて、次のようredis-cli -p 6379
に置き換えることができます。
redis-cli -h redis_host -p redis_port -a redis_password