Redis提供了一些命令来控制键值对的过期时间,包括:
EXPIRE key seconds:为键设置过期时间,单位为秒。
PEXPIRE key milliseconds:为键设置过期时间,单位为毫秒。
EXPIREAT key timestamp:为键设置过期时间,指定一个Unix时间戳作为过期时间。
PEXPIREAT key timestamp:为键设置过期时间,指定一个Unix时间戳作为过期时间,单位为毫秒。
TTL key:获取键的剩余过期时间,单位为秒。
PTTL key:获取键的剩余过期时间,单位为毫秒。
PERSIST key:移除键的过期时间,使其变成永久有效。
下面是一些命令的演示:
127.0.0.1:6379> SET mykey "hello"
OK
127.0.0.1:6379> EXPIRE mykey 10
(integer) 1
127.0.0.1:6379> TTL mykey
(integer) 9
127.0.0.1:6379> PTTL mykey
(integer) 9989
127.0.0.1:6379> PERSIST mykey
(integer) 1
127.0.0.1:6379> TTL mykey
(integer) -1
在上面的例子中,首先使用SET命令设置了键mykey的值为hello。然后使用EXPIRE命令将键的过期时间设置为10秒,并使用TTL和PTTL命令分别获取剩余过期时间(单位为秒和毫秒)。接下来使用PERSIST命令移除键的过期时间,使其变成永久有效,并使用TTL命令检查过期时间是否已经被移除。
另外,Redis还提供了一些与过期时间相关的配置选项,包括:
maxmemory:设置Redis实例最大使用内存大小。
maxmemory-policy:设置Redis实例在达到最大内存限制后的内存淘汰策略,例如LRU(最近最少使用)。
maxmemory-samples:设置Redis实例在执行内存淘汰策略时,每次随机选择的样本数。
下面是一个示例,演示如何使用这些配置选项:
127.0.0.1:6379> CONFIG SET maxmemory 1mb
OK
127.0.0.1:6379> CONFIG SET maxmemory-policy allkeys-lru
OK
127.0.0.1:6379> CONFIG SET maxmemory-samples 5
OK
在上面的例子中,首先使用CONFIG SET命令设置Redis实例的最大使用内存为1MB,并设置内存淘汰策略为LRU,并设置每次随机选择的样本数为5。这些配置选项可以帮助我们更好地管理Redis实例的内存使用,避免内存溢出问题。