30日間非アクティブであったRedisキーの削除

30日間非アクティブであったRedisキーの削除

データベース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

おすすめ記事