转载-批量设置redis-key的过期时间

批量设置redis-key的过期时间

WHAT

批量的给redis中***同样前缀***的key设置失效时间。

WHY

由于之前没有考虑到数据量的问题,在redis中建了大量永久的key,早上发现redis内存满了,一对定时任务挂掉了,于是打算给这些key设置失效时间.

HOW(使用xargs)

之前有批量删除key的方法:

redis-cli -h 127.0.0.1 keys "pre:key_*" | xargs redis-cli -h 127.0.0.1 del
  • 1

打算直接用上述命令,结果发现xargs是把"|"前的标准输出接到后面的标准输入后面然后执行的,而redis的expire需要把在key后面加上时间参数。

于是便去找xargs的使用方法,找到了"-i"命令,

-i, --replace[=R]   replace R in INITIAL-ARGS with names read from standard input; if R is unspecified, assume {}
  • 1

加上"-i"参数,可以用"{}“代替”|"前面的标准输出,

timbby@timbby:~$ echo "world" | xargs -i echo "hello "{}", end."
hello world, end.
  • 1
  • 2

因此最终解决办法就是:

redis-cli -h 127.0.0.1 keys "pre:key_*" | xargs -i redis-cli -h 127.0.0.1 expire {} 86400
  • 1

END

命令执行后会有满屏的"(integer) 1",→_→ …

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值