设置键的生存时间或过期时间
通过EXPIRE 命令或者PEXPIRE 命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间( Time To Live , TTL) ,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键:
redis> SET key valueOKredis> EXPIRE key 5(integer) 1redis> GET key // 5 秒之内"value"redis> GET key // 5 秒之后(nil)
注意:SETEX 命令可以在设直一个字符串键的同时为键设直过期时间,因为这个命令是一个类型限定的命令(只能用于字符串键),但SETEX 命令设置过期时间的原理和EXPIRE命令设置过期时间的原理是完全一样的。
Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除) :
EXPlRE <key> <ttl> 命令用于将键key 的生存时间设置为ttl 秒。PEXPIRE <key> <ttl> 命令用于将键key 的生存时间设置为ttl 毫秒。EXPIREAT <key> < timestamp> 命令用于将键key 的过期时间设置为timestamp所指定的秒数时间戳。PEXPIREAT <key> < timestamp > 命令用于将键key 的过期时间设置为timestamp所指定的毫秒数时间戳。虽然有多种不同单位和不同形式的设置命令,但实际上EXPlRE、PEXPlRE 、EXPIREAT三个命令都是使用PEXPlREAT 命令来实现的:无论客户端执行的是以上四个命令中的哪一个, 经过转换之后,最终的执行效果都和执行PEXPlREAT 命令一样。
redis 命令行批量删除key指令:
Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作。代码如下:
#下面的命令指定数据序号为0,即默认数据库 redis-cli -n 0 keys "*" | xargs redis-cli -n 0 del
redis 命令行批量设置过期时间:
1、编写shell文件,名称为“expireAll.sh”,并设置为可执行文件,内容如下:
# 给指定缓存设置1分钟过期 redis-cli -h 127.0.0.1 -p 6379 expire $1 60
2、执行如下命令,将 redis 中缓存名称以"prefix_"为前缀的所有键批量设置过期时间:
redis-cli -p 6379 keys "prefix_*" | xargs -I {} ./exipreAll.sh {}