设置键的生存时间或过期时间

通过EXPIRE 命令或者PEXPIRE 命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间( Time To Live , TTL) ,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键:

redis> SET key value
OK
redis> EXPIRE key 5
(integer) 1
redis> GET key // 5 秒之内
"value"
redis> GET key // 5 秒之后
(nil)

注意:
SETEX 命令可以在设直一个字符串键的同时为键设直过期时间,因为这个命令是一个类型限定的命令(只能用于字符串键),但SETEX 命令设置过期时间的原理和EXPIRE命令设置过期时间的原理是完全一样的。

Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除) :
EXPlRE 命令用于将键key 的生存时间设置为ttl 秒。
PEXPIRE 命令用于将键key 的生存时间设置为ttl 毫秒。
EXPIREAT < timestamp> 命令用于将键key 的过期时间设置为timestamp所指定的秒数时间戳。
PEXPIREAT < 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 {}