一、什么是Redis
Redis(Remote Dictionary Server)是一个开源的、高性能的键值对存储系统,通常被称为数据结构服务器Redis以其快速的数据读写速度而闻名,可以支持多种数据类型如字符串(strings)、哈希表(hashes)、列表(lists)、集合(sets)以及有序集合(sorted sets)等。
以下是Redis的一些主要特点:
- 内存数据库:Redis主要在内存中操作数据,这意味着它的速度非常快,适合需要快速访问数据的应用场景。
- 持久化支持:虽然Redis是基于内存的数据库,但它也提供了几种不同的方式来将数据持久化到磁盘上,以防止数据丢失。主要包括RDB(Redis Database Backup)快照和AOF(Append Only File)日志两种机制。
- 数据结构丰富:除了基本的键值对存储外,Redis还支持更复杂的数据结构,这使得它可以用于更多样的应用场景,比如缓存、消息队列等。
- 多语言支持:Redis有多种编程语言的客户端实现,包括但不限于Python、Ruby、PHP、Java等,这使得开发者可以很容易地在各种环境中使用Redis。
- 事务支持:Redis支持简单的事务处理,可以将多个命令打包成一个序列执行,保证这些命令要么全部成功,要么全部失败。
- 发布/订阅模式:Redis提供了发布/订阅功能,允许客户端订阅一个或多个频道,然后其他客户端可以向这些频道发送消息。
- 主从复制:Redis支持主从复制,可以在多个服务器之间复制数据,提高系统的可用性和性能。
- 集群支持:Redis Cluster提供了一种分布式解决方案,可以自动将数据分布在多个节点上,提高系统的扩展性和可靠性。
二、Windows环境下安装Redis
三、Redis数据结构
字符串
定义
字符串可以存三种数据类型:字节串、整数、浮点数。对于整数和浮点数,可以执行自增或自减操作。整数的取值范围和系统的长整数(long integer)的取值范围相同(在32位系统上,整数就是32位有 符号整数,在64位系统上,整数就是64位有符号整数),而浮点数的取值范围和精度则与IEEE 754标准的双精度浮点数(double)相同。
基本操作
-
SET key value
-
描述:设置指定键的值
-
返回值:成功时返回
OK
SET mykey "Hello" # 返回 OK -
-
GET key
- 描述:获取指定键的值
- 返回值:返回键的值,如果键不存在则返回
nil
GET mykey # 返回 "Hello" -
GETSET key value
- 描述:设置指定键的值,并返回旧值
- 返回值:返回旧值,如果键不存在则返回
nil
GETSET mykey "World" # 返回 "Hello" -
MSET key value [key value …]
- 描述:同时设置多个键的值
- 返回值:成功时返回
OK
MSET key1 "value1" key2 "value2" # 返回 OK -
SETNX key value
- 描述:只有键不存在时才设置键的值
- 返回值:设置成功返回
1,键已存在返回0
SETNX mykey "hello" # 返回 0 (因为 mykey 已经存在) -
SETEX key seconds value
- 描述:设置键的值,并设置过期时间(秒)
- 返回值:成功时返回
OK
SETNX mykey 10 "Hello" # 返回 OK -
PSETEX key milliseconds value
- 描述:设置键的值,并设置过期时间(毫秒)
- 返回值:成功时返回
OK
增删改查
-
INCR key
- 描述:将键的整数值加
1 - 返回值:返回增加后的值
INCR mycounter # 返回 1 - 描述:将键的整数值加
-
DECR key
- 描述:将键的整数值减
1 - 返回值:返回减少后的值
DECR mucounter # 返回 0 - 描述:将键的整数值减
-
INCRBY key increment
- 描述:将键的整数值增加指定的增量
- 返回值:返回增加后的值
INCRBY mycounter 5 # 返回 5 -
DECRBY key decrement
- 描述:将键的整数值减少指定的减量。
- 返回值:返回减少后的值。
DECRBY mycounter 3 # 返回 2 -
INCRBYFLOAT key increment
- 描述:将键的浮点数值增加指定的增量。
- 返回值:返回增加后的值。
INCRBYFLOAT myfloat 2.5 # 返回 "2.5" INCRBYFLOAT myfloat -1.2 # 返回 "1.3"
字符串操作
-
APPEND key value
- 描述:将值追加到已存在的字符串值后面
- 返回值:返回追加后的字符串长度
APPEND mykey " World" # 返回 11 -
STRLEN key
- 描述:返回键的字符串值的长度
- 返回值:返回字符串长度
STRLEN mykey # 返回 11 -
GETRANGE key start end
- 描述:获取字符串值的一部分,从 start 位置到 end 位置
- 返回值:返回指定范围的字符串
GETRANGE mykey 0 5 # 返回 "Hello " -
SETRANGE key offset value
- 描述:修改字符串值的一部分,从指定的偏移量开始
- 返回值:返回修改后的字符串长度
SETRANGE mykey 6 "Redis" # 返回 11
列表
定义
列表(List)是一种有序的字符串集合,元素可以重复,支持从头部和尾部进行插入和删除操作。
基本操作
-
LPUSH key value [value …]
-
描述:将一个或多个值插入到列表的头部
-
返回值:返回列表的长度
LPUSH mylist "one" "two" # 返回 2 -
-
RPUSH key value [value …]
- 描述:将一个或多个值插入到列表的尾部
- 返回值:返回列表的长度
RPUSH mylist "three" "four" # 返回 4 -
LPOP key
- 描述:移除并返回列表的头元素
- 返回值:返回头元素的值,如果列表为空或键不存在则返回
nil
LPOP mylist # 返回 "one" -
RPOP key
- 描述:移除并返回列表的尾元素
- 返回值:返回尾元素的值,如果列表为空或键不存在则返回
nil
RPOP mylist # 返回 "four" -
LLEN key
- 描述:返回列表的长度
- 返回值:返回列表的长度,如果键不存在则返回
0
LEN mylist # 返回 2
获取列表元素
-
LRANGE key start stop
- 描述:返回列表中指定范围的元素,索引从0开始,其中0表示列表的第一个元素,-1表示列表的最后一个元素
- 返回值:返回一个包含指定范围元素的数组
LRANGE mylist 0 -1 # 返回 ["two", "three"] -
LINDEX key index
- 描述:返回列表中指定位置的元素
- 返回值:返回指定位置的元素,如果索引超出范围或键不存在则返回
nil
LINDEX mylist 0 # 返回 "two"
修改列表元素
-
LSET key index value
-
描述:设置列表中指定位置的元素值
-
返回值:成功时返回
OK,如果索引超出范围则返回错误
LSET mylist 0 "one" # 返回 OK -
插入和删除
-
LINSERT key BEFORE|AFTER pivot value
-
描述:在列表中找到值为
pivot的元素,并在其之前(BEFORE)或之后(AFTER)插入新的值value -
返回值:返回插入后的列表长度,如果列表中没有值为
pivot的元素则返回-1
LINSERT mylist BEFORE "three" "two" # 返回 3 -
-
LREM key count value
- 描述:从列表中移除指定数量的值为
value的元素。 - 参数:
count> 0:从头部开始移除最多count个值为value的元素。count< 0:从尾部开始移除最多count个值为value的元素。count= 0:移除所有值为value的元素。
- 返回值:返回实际移除的元素数量。
LREM mylist 0 "two" # 返回 2 - 描述:从列表中移除指定数量的值为
截取列表
-
LTRIM key start stop
- 描述:对列表进行修剪,使其只保留指定范围内的元素。
- 返回值:成功时返回
OK。
LTRIM mylist 0 1 # 返回 OK
集合
定义
集合(Set)是一种无序的字符串集合,不允许重复元素。集合支持多种操作,如添加、删除、成员检查等。
基本操作
-
SADD key member [member …]
- 描述:将一个或多个成员添加到集合中。如果成员已经存在于集合中,则不会再次添加
- 返回值:返回成功添加的新成员数量
SADD myset "one" "two" "three" # 返回 3 -
SCARD key
- 描述:返回集合中成员的数量
- 返回值:返回集合的大小,如果键不存在则返回
0
SCARD myset # 返回 3 -
SMEMBERS key
- 描述:返回集合中的所有成员
- 返回值:返回一个包含所有成员的数组
SMEMBERS myset # 返回 ["one", "two", "three"] -
SISMEMBER key member
- 描述:检查成员是否存在于集合中
- 返回值:如果成员存在于集合中,返回
1;否则返回0
SISMEMBER myset "one" # 返回 1
删除操作
-
SREM key member [member …]
- 描述:从集合中移除一个或多个成员
- 返回值:返回成功移除的成员数量
SREM myset "one" "two" # 返回 2
集合运算
-
SINTER key [key …]
- 描述:返回多个集合的交集
- 返回值:返回一个包含交集成员的数组
SADD set1 "one" "two" "three" SADD set2 "two" "three" "four" SINTER set1 set2 # 返回 ["two", "three"] -
SINTERSTORE destination key [key …]
- 描述:将多个集合的交集保存到新的集合中
- 返回值:返回交集中成员的数量
SINTERSTORE set3 set1 set2 # 返回 2 -
SUNION key [key …]
- 描述:返回多个集合的并集
- 返回值:返回一个包含并集成员的数组
SUNION set1 set2 # 返回 ["one", "two", "three", "four"] -
SUNIONSTORE destination key [key …]
- 描述:将多个集合的并集保存到新的集合中
- 返回值:返回并集中成员的数量
SUNIONSTORE set4 set1 set2 # 返回 4 -
SDIFF key [key …]
- 描述:返回第一个集合与其他集合的差集
- 返回值:返回一个包含差集成员的数组
SDIFF set1 set2 # 返回 ["one"] -
SDIFFSTORE destination key [key …]
- 描述:将第一个集合与其他集合的差集保存到新的集合中
- 返回值:返回差集中成员的数量
SDIFFSTORE set5 set1 set2 # 返回 1
随机操作
-
SRANDMEMBER key [count]
- 描述:随机返回集合中的一个或多个成员。
- 参数:
- 如果
count为正数,随机返回count个不重复的成员,如果集合中的成员数量小于count,则返回集合中所有成员 - 如果
count为负数,随机返回|count|个可以重复的成员,无论集合中的成员数量如何,都会返回|count|个成员,成员可以重复 - 如果
count未指定,随机返回一个成员
- 如果
- 返回值:返回一个包含随机成员的数组。
SRANDMEMBER myset 2 # 返回 ["one", "two"] SRANDMEMBER myset 5 # 返回 ["one", "two", "three", "four"] SRANDMEMBER myset -3 # 可能返回 ["one", "one", "two"] SRANDMEMBER myset -5 # 可能返回 ["one", "one", "two", "two", "three"] -
SPOP key [count]
- 描述:随机移除并返回集合中的一个或多个成员。
- 参数:
- 如果
count为正数,随机移除并返回count个不重复的成员,如果集合中的成员数量小于count,则返回集合中所有成员,并清空集合 - 如果
count为负数,随机移除并返回count个可以重复的成员,无论集合中的成员数量如何,都会返回|count|个成员,成员可以重复 - 如果
count未指定,随机移除并返回一个成员
- 如果
- 返回值:返回一个包含随机成员的数组。
SPOP myset 2 # 返回 ["one", "two"] SPOP myset 5 # 返回 ["one", "two", "three", "four"] SPOP myset -3 # 可能返回 ["one", "one", "two"] SPOP myset -5 # 可能返回 ["one", "one", "two", "two", "three"]
散列
定义
散列(Hash)是一种键值对的集合,每个键值对都有一个字段(field)和一个值(value)。散列的字段(field)必须是唯一的,不能重复。
基本操作
-
HSET key field value
- 描述:将字段的值设置为给定的值,如果字段已经存在,则更新该字段的值
- 返回值:如果字段是一个新字段并且值已设置,则返回
1;如果字段已经存在并且值已更新,则返回0
HSET myhash field1 "hello" # 返回 1 HSET myhash field1 "world" # 返回 0 -
HGET key field
- 描述:获取散列中指定字段的值
- 返回值:返回字段的值,如果字段不存在则返回
nil
HGET myhash field1 # 返回 "world" -
HMSET key field value [field value …]
- 描述:同时设置多个字段的值
- 返回值:成功时返回
OK
HMSET myhash field2 "foo" field3 "bar" # 返回 OK -
HMGET key field [field …]
- 描述:获取多个字段的值
- 返回值:返回一个包含多个字段值的数组,如果某个字段不存在则对应位置返回
nil
HMGET myhash field1 field2 # 返回 ["world", "foo"] -
HGETALL key
- 描述:获取散列中所有字段和值
- 返回值:返回一个包含所有字段和值的数组,格式为
[field1, value1, field2, value2, ...]
HGETALL myhash # 返回 ["field1", "world", "field2", "foo", "field3", "bar"]
存在性检查
-
HEXISTS key field
- 描述:检查散列中是否存在指定字段
- 返回值:如果字段存在,返回
1;否则返回0
HEXISTS myhash field1 # 返回 1 HEXISTS myhash field4 # 返回 0
删除操作
-
HDEL key field [field …]
- 描述:删除一个或多个字段
- 返回值:返回成功删除的字段数量
HDEL myhash field1 field2 # 返回 2
长度和字段列表
-
HLEN key
- 描述:返回散列中字段的数量
- 返回值:返回字段的数量
HLEN myhash # 返回 1 -
HKEYS key
- 描述:返回散列中所有字段的名称
- 返回值:返回一个包含所有字段名称的数组
HKEYS myhash # 返回 ["field3"] -
HVALS key
- 描述:返回散列中所有字段的值
- 返回值:返回一个包含所有字段值的数组
HVALS myhash # 返回 ["bar"]
增删改查
-
HINCRBY key field increment
- 描述:将字段的整数值增加指定的增量
- 返回值:返回增加后的值
HINCRBY myhash counter 5 # 返回 5 -
HINCRBYFLOAT key field increment
- 描述:将字段的浮点数值增加指定的增量
- 返回值:返回增加后的值
HINCRBYFLOAT myhash floatCounter 2.5 # 返回 "2.5"
有序集合
定义
有序集合(Sorted Set)是一种集合类型,其中每个成员都关联一个分数(score),用于排序。有序集合中的成员是唯一的,但分数可以重复。
基本操作
-
ZADD key [NX | XX] [CH] [INCR] score member [score member …]
- 描述:向有序集合中添加一个或多个成员,或者更新已存在的成员的分数
- 参数:
NX:仅在成员不存在时添加XX:仅在成员已存在时更新CH:仅在成员的分数发生变化时返回更新的成员数量INCR:如果成员已存在,则返回更新后的分数
- 返回值:返回成功添加或更新的成员数量
ZADD myzset 1 "one" 2 "two" 3 "three" # 返回 3 ZADD myzset 4 "three" # 返回 0,因为 "three" 已存在 ZADD myzset NX 1 "one" # 返回 0,因为 "one" 已存在 ZADD myzset XX 4 "one" # 返回 1,因为 "one" 已存在 ZADD myzset INCR 1 "one" # 返回 2,因为 "one" 的分数从 1 增加到 2 -
ZCARD key
- 描述:返回有序集合中的成员数量
- 返回值:返回有序集合中的成员数量
ZCARD myzset # 返回 3 -
ZCOUNT key min max]
- 描述:返回有序集合中分数在指定范围内的成员数量
- 返回值:返回分数在指定范围内的成员数量
ZCOUNT myzset 1 3 # 返回 3
成员查询
-
ZSCORE key member
- 描述:返回有序集合中指定成员的分数
- 返回值:返回成员的分数,如果成员不存在则返回
nil
ZSCORE myzset "one" # 返回 "2" -
ZRANK key member
- 描述:返回有序集合中指定成员的排名(从0开始)
- 返回值:返回成员的排名,如果成员不存在则返回
nil
ZRANK myzset "one" # 返回 0 -
ZREVRANK key member
- 描述:返回有序集合中指定成员的排名(从高到低,从0开始)
- 返回值:返回成员的排名,如果成员不存在则返回
nil
ZREVRANK myzset "one" # 返回 2
范围查询
-
ZRANGE key start stop [WITHSCORES]
- 描述:返回有序集合中指定范围内的成员,按分数从小到大排序
- 参数:
WITHSCORES:返回成员及其分数
- 返回值:返回一个包含成员的数组,如果指定了
WITHSCORES,则返回一个包含成员及其分数的数组
ZRANGE myzset 0 -1 # 返回 ["one", "two", "three"] ZRANGE myzset 0 -1 WITHSCORES # 返回 ["one", "2", "two", "2", "three", "3"] -
ZREVRANGE key start stop [WITHSCORES]
- 描述:返回有序集合中指定范围内的成员,按分数从大到小排序
- 参数:
WITHSCORES:返回成员及其分数
- 返回值:返回一个包含成员的数组,如果指定了
WITHSCORES,则返回一个包含成员及其分数的数组
ZREVRANGE myzset 0 -1 # 返回 ["three", "two", "one"] ZREVRANGE myzset 0 -1 WITHSCORES # 返回 ["three", "3", "two", "2", "one", "2"] -
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
- 描述:返回有序集合中分数在指定范围内的成员,按分数从小到大排序
- 参数:
WITHSCORES:返回成员及其分数LIMIT offset count:返回指定范围内的成员
- 返回值:返回一个包含成员的数组,如果指定了
WITHSCORES,则返回一个包含成员及其分数的数组
ZRANGEBYSCORE myzset 1 3 # 返回 ["one", "two", "three"] ZRANGEBYSCORE myzset 1 3 WITHSCORES # 返回 ["one", "2", "two", "2", "three", "3"] ZRANGEBYSCORE myzset 1 3 LIMIT 0 2 # 返回 ["one", "two"] -
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
- 描述:返回有序集合中分数在指定范围内的成员,按分数从大到小排序
- 参数:
WITHSCORES:返回成员及其分数LIMIT offset count:返回指定范围内的成员
- 返回值:返回一个包含成员的数组,如果指定了
WITHSCORES,则返回一个包含成员及其分数的数组
ZREVRANGEBYSCORE myzset 3 1 # 返回 ["three", "two", "one"] ZREVRANGEBYSCORE myzset 3 1 WITHSCORES # 返回 ["three", "3", "two", "2", "one", "2"] ZREVRANGEBYSCORE myzset 3 1 LIMIT 0 2 # 返回 ["three", "two"]
成员删除
-
ZREM key member [member …]
- 描述:从有序集合中移除一个或多个成员
- 返回值:返回成功移除的成员数量
ZREM myzset "one" "two" # 返回 2
分数操作
-
ZINCRBY key increment member
- 描述:将有序集合中指定成员的分数增加指定的增量
- 返回值:返回更新后的分数
ZINCRBY myzset 2 "one" # 返回 "4"
交集、并集和差集
-
ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
- 描述:计算多个有序集合的交集,并将结果存储在新的有序集合中
- 参数:
destination:结果存储的目标键numkeys:参与交集计算的有序集合数量key [key ...]:参与交集计算的有序集合键WEIGHTS weight [weight ...]:每个有序集合的权重AGGREGATE SUM|MIN|MAX:聚合方式,可以是SUM、MIN或MAX
- 返回值:返回结果有序集合中的成员数量。
ZINTERSTORE zset3 2 myzset1 myzset2 WEIGHTS 1 2 AGGREGATE SUM # 返回交集成员数量 -
ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
- 描述:计算多个有序集合的并集,并将结果存储在新的有序集合中
- 参数:
destination:结果存储的目标键numkeys:参与并集计算的有序集合数量key [key ...]:参与并集计算的有序集合键WEIGHTS weight [weight ...]:每个有序集合的权重AGGREGATE SUM|MIN|MAX:聚合方式,可以是SUM、MIN或MAX
- 返回值:返回结果有序集合中的成员数量
ZUNIONSTORE zset3 2 myzset1 myzset2 WEIGHTS 1 2 AGGREGATE SUM # 返回并集成员数量 -
ZDIFFSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
- 描述:计算多个有序集合的差集,并将结果存储在新的有序集合中
- 参数:
destination:结果存储的目标键numkeys:参与差集计算的有序集合数量key [key ...]:参与差集计算的有序集合键WEIGHTS weight [weight ...]:每个有序集合的权重AGGREGATE SUM|MIN|MAX:聚合方式,可以是SUM、MIN或MAX
- 返回值:返回结果有序集合中的成员数量
ZDIFFSTORE zset3 2 myzset1 myzset2 # 返回差集成员数量
发布与订阅
定义
在 Redis 的发布与订阅(Pub/Sub)模型中,客户端订阅频道后会实时接收发布到这些频道的消息。如果客户端在执行订阅操作的过程中断线,那么客户端将丢失在断线期间发送的所有消息。这是因为 Redis 的 Pub/Sub 模型是基于推送的,而不是基于消息队列的。具体来说,这意味着:
- 实时推送:当消息发布到某个频道时,Redis 会立即将消息推送给所有当前订阅该频道的客户端。
- 无持久化:Redis 不会为 Pub/Sub 消息提供持久化存储。一旦消息被推送到客户端,Redis 就不再保留这些消息。
- 断线丢失:如果客户端在订阅期间断线,Redis 不会保存这些客户端在断线期间错过的消息。当客户端重新连接并恢复订阅时,它只会收到断线之后新发布的消息,而不会收到断线期间发布的消息。
订阅操作
-
SUBSCRIBE channel [channel …]
-
描述:订阅一个或多个给定的频道
-
返回值:返回一个消息,指示客户端已成功订阅指定的频道
-
消息格式:
["subscribe", channel, number_of_subscriptions] -
参数说明:
"subscribe":表示这是一个订阅成功的消息channel:表示成功订阅的频道名称。number_of_subscriptions:表示客户端当前订阅的频道总数(包括普通频道和模式订阅)
-
示例:
SUBSCRIBE channel1 channel2 -
返回示例:
1) "subscribe" 2) "channel1" 3) (integer) 1 1) "subscribe" 2) "channel2" 3) (integer) 2
-
-
PSUBSCRIBE pattern [pattern …]
-
描述:订阅一个或多个符合给定模式的频道
-
返回值:返回一个消息,指示客户端已成功订阅指定的模式
-
消息格式:
["psubscribe", pattern, number_of_subscriptions] -
参数说明:
"psubscribe":表示这是一个模式订阅成功的消息pattern:表示成功取消订阅的模式number_of_subscriptions:表示客户端当前订阅的频道总数(包括普通频道和模式订阅)
-
示例:
PSUBSCRIBE channel* message* -
返回示例:
1) "psubscribe" 2) "channel*" 3) (integer) 1 1) "psubscribe" 2) "message*" 3) (integer) 2
-
发布操作
-
PUBLISH channel message
-
描述:将消息发布到指定的频道。
-
返回值:返回接收到消息的客户端数量。
-
示例:
PUBLISH channel1 "Hello, World!" -
返回示例:
(integer) 2 # 表示有两个客户端接收到消息
-
取消订阅操作
-
UNSUBSCRIBE [channel [channel …]]
-
描述:取消订阅一个或多个给定的频道。如果没有指定频道,则取消订阅所有频道
-
返回值:返回一个消息,指示客户端已成功取消订阅指定的频道
-
消息格式:
["unsubscribe", channel, number_of_subscriptions] -
参数说明:
"unsubscribe":表示这是一个取消订阅成功的消息channel:表示成功取消订阅的频道名称number_of_subscriptions:表示客户端当前订阅的频道总数(包括普通频道和模式订阅)
-
示例:
UNSUBSCRIBE channel1 channel2 -
返回示例:
1) "unsubscribe" 2) "channel1" 3) (integer) 1 1) "unsubscribe" 2) "channel2" 3) (integer) 0
-
-
PUNSUBSCRIBE [pattern [pattern …]]
-
描述:取消订阅一个或多个符合给定模式的频道。如果没有指定模式,则取消订阅所有模式
-
返回值:返回一个消息,指示客户端已成功取消订阅指定的模式
-
消息格式:
["punsubscribe", pattern, number_of_subscriptions] -
参数说明:
"punsubscribe":表示这是一个取消模式订阅成功的消息pattern:表示成功取消订阅的模式number_of_subscriptions:表示客户端当前订阅的频道总数(包括普通频道和模式订阅)
-
示例:
PUNSUBSCRIBE channel* message* -
返回示例:
1) "punsubscribe" 2) "channel*" 3) (integer) 1 1) "punsubscribe" 2) "message*" 3) (integer) 0
-
过期时间
设置过期时间
-
EXPIRE key seconds
-
描述:设置键的过期时间,单位为秒
-
返回值:
1:如果过期时间设置成功0:如果键不存在或过期时间设置失败
-
示例:
EXPIRE mykey 60 # 设置 mykey 的过期时间为 60 秒 -
返回示例:
(integer) 1
-
-
PEXPIRE key milliseconds
-
描述:设置键的过期时间,单位为毫秒
-
返回值:
1:如果过期时间设置成功0:如果键不存在或过期时间设置失败
-
示例:
PEXPIRE mykey 60000 # 设置 mykey 的过期时间为 60000 毫秒(60 秒) -
返回示例:
(integer) 1
-
获取过期时间
-
TTL key
-
描述:获取键的剩余生存时间(TTL),单位为秒
-
返回值:
- 正整数:表示键的剩余生存时间(以秒为单位)
-1:如果键存在但没有设置过期时间-2:如果键不存在
-
示例:
TTL mykey # 获取 mykey 的剩余生存时间 -
返回示例:
(integer) 50 # 剩余生存时间为 50 秒
-
-
PTTL key
-
描述:获取键的剩余生存时间(TTL),单位为毫秒
-
返回值:
- 正整数:表示键的剩余生存时间(以毫秒为单位)
-1:如果键存在但没有设置过期时间-2:如果键不存在
-
示例:
PTTL mykey # 获取 mykey 的剩余生存时间 -
返回示例:
(integer) 50000 # 剩余生存时间为 50000 毫秒(50 秒)
-
修改过期时间
-
EXPIREAT key timestamp
-
描述:设置键的过期时间为指定的 Unix 时间戳(秒)。
-
返回值:
1:如果过期时间设置成功。0:如果键不存在或过期时间设置失败。
-
示例:
EXPIREAT mykey 1633072800 # 设置 mykey 的过期时间为 2021-10-01 12:00:00 UTC -
返回示例:
(integer) 1
-
-
PEXPIREAT key timestamp
-
描述:设置键的过期时间为指定的 Unix 时间戳(毫秒)。
-
返回值:
1:如果过期时间设置成功。0:如果键不存在或过期时间设置失败。
-
示例:
PEXPIREAT mykey 1633072800000 # 设置 mykey 的过期时间为 2021-10-01 12:00:00 UTC -
返回示例:
(integer) 1
-
删除过期时间
-
PERSIST key
-
描述:移除键的过期时间,使键永不过期。
-
返回值:
1:如果过期时间成功移除。0:如果键不存在或键没有设置过期时间。
-
示例:
PERSIST mykey # 移除 mykey 的过期时间 -
返回示例:
(integer) 1PTTL mykey # 获取 mykey 的剩余生存时间
-
返回示例:
(integer) 50000 # 剩余生存时间为 50000 毫秒(50 秒)
-
修改过期时间
-
EXPIREAT key timestamp
-
描述:设置键的过期时间为指定的 Unix 时间戳(秒)。
-
返回值:
1:如果过期时间设置成功。0:如果键不存在或过期时间设置失败。
-
示例:
EXPIREAT mykey 1633072800 # 设置 mykey 的过期时间为 2021-10-01 12:00:00 UTC -
返回示例:
(integer) 1
-
-
PEXPIREAT key timestamp
-
描述:设置键的过期时间为指定的 Unix 时间戳(毫秒)。
-
返回值:
1:如果过期时间设置成功。0:如果键不存在或过期时间设置失败。
-
示例:
PEXPIREAT mykey 1633072800000 # 设置 mykey 的过期时间为 2021-10-01 12:00:00 UTC -
返回示例:
(integer) 1
-
删除过期时间
-
PERSIST key
-
描述:移除键的过期时间,使键永不过期。
-
返回值:
1:如果过期时间成功移除。0:如果键不存在或键没有设置过期时间。
-
示例:
PERSIST mykey # 移除 mykey 的过期时间 -
返回示例:
(integer) 1
-

4万+

被折叠的 条评论
为什么被折叠?



