Redis修改过期时间命令详解

Redis是一个开源的内存数据结构存储系统,常用于缓存、消息队列、排行榜等应用场景。在使用Redis时,我们经常需要设置键的过期时间,以便在一定时间后自动删除或更新键的值。本文将介绍如何使用Redis命令修改键的过期时间,并给出相应的代码示例。

1. EXPIRE命令

EXPIRE命令用于设置键的过期时间,它的基本语法如下所示:

EXPIRE key seconds

其中,key是要设置过期时间的键名,seconds是过期时间,单位为秒。当执行这个命令后,Redis会在seconds秒后自动删除该键。

下面是一个使用EXPIRE命令设置过期时间的示例:

import redis

# 创建Redis连接
r = redis.Redis(host='localhost', port=6379)

# 设置键mykey的过期时间为10秒
r.set('mykey', 'myvalue')
r.expire('mykey', 10)

在上述示例中,我们首先创建了一个Redis连接,然后使用set命令设置键mykey的值为myvalue。接下来,使用expire命令将mykey的过期时间设置为10秒。

2. PEXPIRE命令

PEXPIRE命令与EXPIRE命令类似,但它的过期时间单位为毫秒。其基本语法如下:

PEXPIRE key milliseconds

下面是一个使用PEXPIRE命令设置过期时间的示例:

import redis

# 创建Redis连接
r = redis.Redis(host='localhost', port=6379)

# 设置键mykey的过期时间为500毫秒
r.set('mykey', 'myvalue')
r.pexpire('mykey', 500)

在上述示例中,我们使用set命令设置键mykey的值为myvalue,并使用pexpire命令将mykey的过期时间设置为500毫秒。

3. TTL命令

TTL命令用于获取键的剩余过期时间,它的基本语法如下:

TTL key

下面是一个使用TTL命令获取剩余过期时间的示例:

import redis

# 创建Redis连接
r = redis.Redis(host='localhost', port=6379)

# 设置键mykey的过期时间为10秒
r.set('mykey', 'myvalue')
r.expire('mykey', 10)

# 获取mykey的剩余过期时间
ttl = r.ttl('mykey')
print(ttl)

在上述示例中,我们首先使用set命令设置键mykey的值为myvalue,并使用expire命令将mykey的过期时间设置为10秒。接下来,使用ttl命令获取mykey的剩余过期时间,并将结果打印出来。

需要注意的是,当键不存在或键没有设置过期时间时,TTL命令会返回-1;当键已过期时,TTL命令会返回-2。

4. PERSIST命令

PERSIST命令用于移除键的过期时间,使键永久有效,它的基本语法如下:

PERSIST key

下面是一个使用PERSIST命令移除过期时间的示例:

import redis

# 创建Redis连接
r = redis.Redis(host='localhost', port=6379)

# 设置键mykey的过期时间为10秒
r.set('mykey', 'myvalue')
r.expire('mykey', 10)

# 移除mykey的过期时间
r.persist('mykey')

在上述示例中,我们首先使用set命令设置键mykey的值为myvalue,并使用expire命令将mykey的过期时间设置为10秒。接下来,使用persist命令移除mykey的过期时间,使其永久有效。

5. 表格

下面是对比EXPIRE、PEXPIRE、TTL和PERSIST命令的一个表格:

命令 作用 语法
EXPIRE 设置过期时间 EXPIRE key seconds
PEXPIRE 设置过期时间(毫秒) PEXPIRE key