Redis 常用命令汇总

 核心概念

  • Redis 是一个键值对数据库,所有数据都有一个唯一的 key。
  • 命令不区分大小写,但通常使用大写。
  • key 和 value 都是二进制安全的,意味着你可以用任何二进制序列作为键值。

 

1. 键(Key)通用命令

这些命令不关心值的数据类型,适用于所有键。

命令

描述

示例

DEL key [key ...]

删除一个或多个键

DEL name age

EXISTS key

检查一个键是否存在

EXISTS name

EXPIRE key seconds

为键设置过期时间(秒)

EXPIRE session_id 3600

TTL key

查看键的剩余生存时间(秒)

TTL session_id

PERSIST key

移除键的过期时间,使其永久有效

PERSIST session_id

KEYS pattern

查找所有符合给定模式 pattern 的键

KEYS user:*

TYPE key

返回键所存储的值的类型

TYPE mylist

RENAME key newkey

重命名键

RENAME old_name new_name

RENAMENX key newkey

仅当新键名不存在时,重命名键

RENAMENX old_name new_name

MOVE key db

将当前数据库的键移动到指定数据库

MOVE key 1 (移动到1号DB)

RANDOMKEY

从当前数据库中随机返回一个键

RANDOMKEY


2. 字符串(String)

字符串是 Redis 最基本的数据类型,可以包含任何数据,如文本、数字(整数/浮点数)或二进制数据(如图片)。

命令

描述

示例

SET key value

设置指定键的值

SET username "alice"

GET key

获取指定键的值

GET username

GETSET key value

设置新值并返回旧值

GETSET counter 100

MSET key value [key value ...]

同时设置多个键值对

MSET k1 v1 k2 v2

MGET key [key ...]

获取所有给定键的值

MGET k1 k2

SETNX key value

只有在键不存在时才设置

SETNX lock_key "1" (用于分布式锁)

INCR key

将键存储的整数值增加 1

INCR page_views

DECR key

将键存储的整数值减少 1

DECR inventory

INCRBY key increment

将键存储的值增加指定的整数

INCRBY balance 100

DECRBY key decrement

将键存储的值减少指定的整数

DECRBY balance 50

INCRBYFLOAT key increment

将键存储的值增加指定的浮点数

INCRBYFLOAT price 2.5

APPEND key value

如果键已存在且是字符串,则将值追加到末尾

APPEND greeting " World!"

STRLEN key

返回键所存储的字符串值的长度

STRLEN username


3. 哈希(Hash)

哈希是键值对的集合,非常适合存储对象(如用户信息)。

命令

描述

示例

HSET key field value

设置哈希表中字段的值

HSET user:1000 name "Bob"

HGET key field

获取哈希表中字段的值

HGET user:1000 name

HMSET key field value [field value ...]

同时设置多个字段(新版 HSET 已支持)

HMSET user:1000 age 30 city NYC

HMGET key field [field ...]

获取所有给定字段的值

HMGET user:1000 name age

HGETALL key

获取哈希表中所有的字段和值

HGETALL user:1000

HDEL key field [field ...]

删除一个或多个哈希表字段

HDEL user:1000 city

HEXISTS key field

查看哈希表中指定的字段是否存在

HEXISTS user:1000 name

HKEYS key

获取哈希表中的所有字段名

HKEYS user:1000

HVALS key

获取哈希表中的所有值

HVALS user:1000

HINCRBY key field increment

为哈希表中的整数值字段增加整数增量

HINCRBY user:1000 age 1

HLEN key

获取哈希表中字段的数量

HLEN user:1000


4. 列表(List)

列表是简单的字符串列表,按照插入顺序排序。你可以在列表的头部(左边)或尾部(右边)添加元素。

命令

描述

示例

LPUSH key value [value ...]

将一个或多个值插入到列表头部

LPUSH mylist "world"

RPUSH key value [value ...]

将一个或多个值插入到列表尾部

RPUSH mylist "hello"

LPOP key

移除并获取列表的第一个元素

LPOP mylist

RPOP key

移除并获取列表的最后一个元素

RPOP mylist

LRANGE key start stop

获取列表指定范围内的元素

LRANGE mylist 0 -1 (获取全部)

LLEN key

获取列表长度

LLEN mylist

LINDEX key index

通过索引获取列表中的元素

LINDEX mylist 1

LREM key count value

移除列表中与值相等的元素

LREM mylist 1 "hello"

LSET key index value

通过索引设置列表元素的值

LSET mylist 0 "new"

LTRIM key start stop

对一个列表进行修剪,只保留指定区间内的元素

LTRIM mylist 0 2


5. 集合(Set)

集合是 String 类型的无序集合,集合成员是唯一的,不允许重复。

命令

描述

示例

SADD key member [member ...]

向集合添加一个或多个成员

SADD tags "redis" "db"

SREM key member [member ...]

移除集合中一个或多个成员

SREM tags "db"

SMEMBERS key

返回集合中的所有成员

SMEMBERS tags

SISMEMBER key member

判断 member 元素是否是集合的成员

SISMEMBER tags "redis"

SCARD key

获取集合的成员数

SCARD tags

SINTER key [key ...]

返回给定所有集合的交集

SINTER set1 set2

SUNION key [key ...]

返回所有给定集合的并集

SUNION set1 set2

SDIFF key [key ...]

返回第一个集合与其他集合之间的差集

SDIFF set1 set2

SPOP key [count]

移除并返回集合中的一个或多个随机元素

SPOP tags 1

SRANDMEMBER key [count]

返回集合中一个或多个随机数,但不移除

SRANDMEMBER tags


6. 有序集合(Sorted Set / ZSet)

有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数(score)。Redis 正是通过分数来为集合中的成员进行从小到大的排序。

命令

描述

示例

ZADD key [NXXX] [CH] [INCR] score member [score member ...]

向有序集合添加一个或多个成员,或更新已存在成员的分数。

ZADD leaderboard 100 "player1"

ZRANGE key start stop [WITHSCORES]

通过索引区间返回有序集合指定区间内的成员(低到高)

ZRANGE leaderboard 0 2 WITHSCORES

ZREVRANGE key start stop [WITHSCORES]

返回有序集中指定区间内的成员,通过索引,分数从高到低

ZREVRANGE leaderboard 0 2

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

通过分数返回有序集合指定区间内的成员

ZRANGEBYSCORE leaderboard 50 200

ZREM key member [member ...]

移除有序集合中的一个或多个成员

ZREM leaderboard "player1"

ZSCORE key member

返回有序集中,成员的分数值

ZSCORE leaderboard "player1"

ZRANK key member

返回有序集合中指定成员的索引(排名,从0开始,低到高)

ZRANK leaderboard "player1"

ZREVRANK key member

返回有序集合中指定成员的索引(排名,从0开始,高到低)

ZREVRANK leaderboard "player1"

ZCARD key

获取有序集合的成员数

ZCARD leaderboard

ZCOUNT key min max

计算在有序集合中指定区间分数的成员数

ZCOUNT leaderboard 50 100

ZINCRBY key increment member

有序集合中对指定成员的分数加上增量

ZINCRBY leaderboard 15 "player1"


7. 发布订阅(Pub/Sub)

用于消息通信的模式。

命令

描述

示例

SUBSCRIBE channel [channel ...]

订阅一个或多个频道

SUBSCRIBE news

PUBLISH channel message

将信息发送到指定的频道

PUBLISH news "hello world"

UNSUBSCRIBE [channel ...]

退订一个或多个频道

UNSUBSCRIBE news

PSUBSCRIBE pattern [pattern ...]

订阅一个或多个符合给定模式的频道

PSUBSCRIBE news.*


8. 事务

Redis 事务允许在一次单独的步骤中执行一组命令。

命令

描述

示例

MULTI

标记一个事务块的开始

MULTI

EXEC

执行所有事务块内的命令

EXEC

DISCARD

取消事务,放弃执行事务块内的所有命令

DISCARD

WATCH key [key ...]

监视一个或多个键,如果在事务执行前这个键被其他命令改动,则事务将被打断

WATCH balance

UNWATCH

取消 WATCH 命令对所有键的监视

UNWATCH


9. 服务器管理与其他

命令

描述

示例

PING

测试连接是否存活

PING

ECHO message

打印字符串

ECHO "Hello"

SELECT index

切换到指定的数据库

SELECT 1 (切换到1号DB)

AUTH password

验证服务器密码

AUTH mypassword

INFO [section]

获取 Redis 服务器的各种信息和统计数值

INFO server

CLIENT LIST

获取连接到服务器的客户端连接列表

CLIENT LIST

FLUSHDB

清空当前数据库

FLUSHDB

FLUSHALL

清空所有数据库

FLUSHALL

SAVE

同步保存数据到磁盘

SAVE

BGSAVE

在后台异步保存当前数据库的数据到磁盘

BGSAVE

 

posted @ 2025-10-31 14:20  业余砖家  阅读(10)  评论(0)    收藏  举报