Redis常用指令
服务端命令
SAVE
:同步保存数据到磁盘。BGSAVE
:异步保存数据到磁盘。LASTSAVE
:返回最后一次成功保存到磁盘的时间。SHUTDOWN
:安全地关闭Redis服务器。BGREWRITEAOF
:异步重写AOF文件,使得文件体积更小。
客户端命令
redis-cli -c -h 127.0.0.1 -p 6379 -a 123456
:-c 以集群方式登录,-h ip地址, -p 端口, -a 密码AUTH password
:验证密码是否正确。ECHO message
:打印传入的字符串。PING
:检查服务器是否响应,通常用来测试连接是否有效。QUIT
:关闭客户端与服务器的连接。SELECT index
:切换到指定的数据库(Redis默认支持16个数据库)。
String类型操作
设置值
SET key value
:设置指定 key 的值。SETNX key value
:仅在 key 不存在时设置值,返回 1 表示设置成功,0 表示 key 已存在。SETEX key seconds value
:设置 key 的值并在 seconds 秒后自动过期。PSETEX key milliseconds value
:类似于 SETEX,但以毫秒为单位设置过期时间。
获取值
GET key
:获取 key 对应的值。MGET key1 key2 ...
:同时获取多个 key 的值。
修改值
APPEND key value
:将 value 追加到 key 已存在的值末尾。INCR key
:将 key 中存储的数值加 1。INCRBY key increment
:将 key 中存储的数值增加指定的增量。DECR key
:将 key 中存储的数值减 1。DECRBY key decrement
:将 key 中存储的数值减少指定的数量。
检查与比较
EXISTS key
:检查 key 是否存在。STRLEN key
:返回 key 值的字节长度。GETRANGE key start end
:返回 key 中指定范围的子字符串。GETBIT key offset
:获取 key 在指定偏移量上的位(bit)值。
批量操作
MSET key1 value1 key2 value2 ...
:同时设置多个 key-value 对。MSETNX key1 value1 key2 value2 ...
:仅在所有给定 key 都不存在时,设置多个 key-value 对。
其他操作
DEL key
:删除 key 及其关联的值。TYPE key
:返回 key 对应的存储类型,对于 String 类型返回 “string”。
过期时间相关
PEXPIRE key milliseconds
:为 key 设置过期时间,单位为毫秒。EXPIRE key seconds
:为 key 设置过期时间,单位为秒。TTL key
:查询 key 的剩余生存时间(以秒为单位)。PTTL key
:查询 key 的剩余生存时间(以毫秒为单位)。
注意:上述内容仅为 Redis String 类型的部分核心操作命令,具体使用时还可能存在其他针对特定场景的命令。
List类型操作
添加元素
-
LPUSH key value [value ...]
: 描述:将一个或多个值插入到列表头部。 -
RPUSH key value [value ...]
:将一个或多个值插入到列表尾部。
获取元素
-
LINDEX key index
:获取列表中指定索引位置的元素,索引从0开始。 -
LRANGE key start stop
:获取列表指定范围内的元素,返回一个包含指定区间的成员列表。
删除元素
-
LPOP key
:移除并返回列表的第一个元素。 -
RPOP key
:移除并返回列表的最后一个元素。 -
LREM key count value
:根据参数 count 的值,从列表中移除指定数量的值为 value 的元素。
查询列表信息
-
LLEN key
:返回列表的长度。 -
LINSERT key BEFORE|AFTER pivot value
:在列表的某个元素(pivot)前或后插入新元素(value)。
阻塞队列操作
-
BLPOP key1 [key2 ...] timeout
:阻塞式地从任意给定列表的第一个非空列表中弹出第一个元素,若所有列表都为空,则等待至多timeout秒。 -
BRPOP key1 [key2 ...] timeout
:与 BLPOP 类似,但会在任意给定列表的最后一个非空列表尾部弹出元素。
队列与栈间移动元素
RPOPLPUSH source destination
:移除并返回 source 列表的最后一个元素,并将其原子性地添加到 destination 列表的头部。
Hash类型操作
设置/更新字段值
-
HSET key field value
:将哈希表 key 中的字段 field 设置为 value ,如果 key 不存在则创建新的哈希表。如果 field 已存在,则覆盖原有值。 -
HMSET key field value [field value ...]
:同时将多个 field-value 对设置到哈希表 key 中。
获取字段值
-
HGET key field
:返回哈希表 key 中指定字段 field 的值。 -
HMGET key field [field ...]
:返回哈希表 key 中一个或多个指定字段 field 的值。
查看哈希表信息
-
HGETALL key
:返回哈希表 key 中的所有字段和值。 -
HKEYS key
:返回哈希表 key 中的所有字段名。 -
HVALS key
:返回哈希表 key 中所有字段对应的值。 -
HLEN key
:返回哈希表 key 中字段的数量。
删除字段
HDEL key field [field ...]
:从哈希表 key 中删除一个或多个指定字段。
判断字段是否存在
HEXISTS key field
:判断哈希表 key 中,指定字段 field 是否存在。
数字类型的字段递增/递减
-
HINCRBY key field increment
:将哈希表 key 中的字段 field 的整数值加上给定的增量 increment。 -
HINCRBYFLOAT key field increment
:将哈希表 key 中的字段 field 的浮点数值加上给定的浮点数增量 increment。
多个字段递增/递减(Redis 6.2+)
HINCRBY-multi key field amount [field amount ...]
:一次性对多个字段进行递增操作,此命令在 Redis 6.2 版本及以后提供。
遍历哈希表
HSCAN key cursor [MATCH pattern] [COUNT count]
:迭代哈希表中的键值对,返回游标和键值对集合。
Set类型操作
添加元素
SADD key member [member ...]
:将一个或多个成员添加到集合 key 中,如果成员已经是集合的成员,则不执行任何操作,并返回 0 。否则,向集合添加该成员并返回 1 。
删除元素
SREM key member [member ...]
:从集合 key 中移除指定的一个或多个成员,如果成员不存在,则忽略该命令。
查询成员状态
SISMEMBER key member
:判断 member 是否是集合 key 的成员,返回 1 表示是,返回 0 表示不是。
获取集合大小
SCARD key
:返回集合 key 的成员数量。
集合交集、并集、差集操作
-
SINTER key [key ...]
:返回一个集合的交集,该集合包含所有给定集合的共同成员。 -
SUNION key [key ...]
:返回一个集合的并集,该集合包含所有给定集合的成员。 -
SDIFF key [key ...]
:返回一个集合的差集,即所有只存在于第一个集合中,而不在其他给定集合中的成员。
将集合操作的结果保存到另一个集合
-
SINTERSTORE destination key [key ...]
:计算给定集合的交集并将结果存储到 destination 集合中。 -
SUNIONSTORE destination key [key ...]
:计算给定集合的并集并将结果存储到 destination 集合中。 -
SDIFFSTORE destination key [key ...]
:计算给定集合的差集并将结果存储到 destination 集合中。
随机成员操作
SRANDMEMBER key [count]
:从集合 key 中随机返回一个或多个成员。如果 count 为正数,则返回 count 个不同的随机成员;如果 count 为负数,则返回一个随机成员,并带上它在集合中的重复次数。
集合成员排序
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
:(虽然 SORT 不仅仅用于 Set 类型,但它可用于集合并按照指定方式排序其成员,还可配合 STORE 参数将排序后的结果存入另一个集合中。)
ZSet类型操作
添加元素
ZADD key score member [score member ...]
:将一个或多个成员及其分数(score)添加到有序集合 key 中,如果成员已存在,那么更新它的分数,并根据新的分数重新排序。
获取集合信息
-
ZRANGE key start stop [WITHSCORES]
:返回有序集合 key 中指定区间内的成员,其中成员的位置按分数从小到大排序。可选参数 WITHSCORES 返回每个成员及其对应的分数。 -
ZCARD key
:返回有序集合 key 的成员数量。 -
ZCOUNT key min max
:计算有序集合 key 中,score 值介于 min 和 max 之间的成员数量。 -
ZSCORE key member
:返回有序集合 key 中成员 member 的分数。
删除元素
ZREM key member [member ...]
:从有序集合 key 中移除一个或多个成员。
范围查询
-
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
:返回有序集合 key 中指定分数区间内的成员,可以指定分数范围,并可以选择是否返回分数及分页查询。 -
ZREVRANGE key start stop [WITHSCORES]
:同ZRANGE,但返回的是按 score 从大到小排序的成员。 -
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
:同ZRANGEBYSCORE,但返回的是按 score 降序排列的成员。
更新分数
ZINCRBY key increment member
:有序集合 key 中,为成员 member 的分数增加指定增量 increment。
集合运算
-
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
:计算多个有序集合的并集,并将结果存储到 destination 集合中,可选权重和聚合函数。 -
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
:计算多个有序集合的交集,并将结果存储到 destination 集合中,同样支持权重和聚合函数。
排序操作
-
ZREVRANK key member
:返回有序集合 key 中成员 member 的排名,按 score 降序排列。 -
ZRANK key member
:返回有序集合 key 中成员 member 的排名,按 score 升序排列。