Redis默认设置的过期时间策略(redis默认的过期策略)
Redis是当前备受欢迎的键值存储,它以自己的方式实现了字典,列表,集合,有序集合等数据结构。Redis的一项重要特性是它可以为键设置过期时间,这在实际的开发中常常需要。Redis 主要使用以下四种方法来实现过期时间:
一是修改 Redis.conf 配置文件来指定默认的过期时间;
二是为某个键指定一个过期的 UNIX 时间戳;
三是使用 `EXPIRE 命令为某个键设置过期时间;
四是使用 `EXPIREAT` 命令为某个键设置一个 UNIX 时间戳来指定过期时间。
修改Redis.conf 配置文件来指定默认的过期时间是最常用的方式,当我们建立新键的时候,只要不重置新的过期时间,就会被默认的过期时间控制。Redis的配置文件mredis.conf可以使用ttl或者maxmemory-policy参数来设置默认的过期时间,以下是修改全局ttl的例子:
maxmemory-policy noeviction
#expire keys after 30 daysdefault-ttl 2592000
#change the current ttl of existing keys to 30 days#给所有键设置30天的过期时间
bcakground-rewrite-ttl 2592000
另一种指定过期时间的方法,是给键指定UNIX时间戳,即给键指定一个在特定时间之后删除的UNIX时间戳。假如我们想要一个特定时间之后键被删除,我们可以使用以下代码:
# 这将设定一个特定时间(1543930674)之后删除的Unix时间戳
# 该键的TTL为 1543930674 - 上一次存储TTL的ACKSET mykey "value" EX 1543930674
我们也可以使用EXPIRE和EXPIREAT来指定键的过期时间。
EXPIRE命令能用于指定一个键的存活时间,单位为秒,可以让该键在给定的时间之后自动删除。例如,我们想让键在120秒后失效,可以使用以下代码:
# 设置过期时间为120秒
SET mykey "value"EXPIRE mykey 120
EXPIREAT命令可以让某个键在特定时间失效,只需要传入一个UNIX时间戳即可。例如,我们可以让某个键在2018 11月1号凌晨2点失效:
SET mykey "value"
EXPIREAT mykey 1541101620
以上是Redis默认设置的过期时间策略,如果想要更加灵活的控制键的过期时间,可以使用EXPIRE和EXPIREAT等命令来指定某个键的过期时间。