Muj*_*yed 7 scripting cron database
我安装了一个名为的 Web 应用程序scrumblr,redis用作数据库。
我试图做的是删除所有 30 天不活动或 30 天内未访问的密钥。
我跑了
redis-cli KEYS*
Run Code Online (Sandbox Code Playgroud)
它返回所有键,但它不显示时间戳。
是否有我可以每天在特定时间运行的脚本或命令,它会找出所有不活动的键并删除它们?
您可以利用OBJECT IDLETIME命令,该命令返回自存储在指定键的对象空闲(未由读取或写入操作请求)以来的秒数。
示例代码如下:
#!/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;
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您可以替换redis-cli -p 6379为:
redis-cli -h redis_host -p redis_port -a redis_password