Redis命令参考手册是开发者和运维人员在使用Redis时不可或缺的工具,它详细列出了Redis支持的各种命令及其用法、参数和返回值,Redis作为一款高性能的内存数据库,以其丰富的数据结构和高效的命令执行能力著称,掌握这些命令能够充分发挥Redis的性能优势,以下将按照数据类型分类,详细介绍Redis的核心命令,并辅以表格说明,最后附上常见问题解答。

字符串(String)操作
字符串是Redis最基本的数据类型,可以存储文本、JSON、序列化对象等数据,常用命令包括:
- SET:设置指定key的值,语法为
SET key value [EX seconds|PX milliseconds] [NX|XX],其中EX或PX可设置过期时间,NX表示key不存在时才设置,XX表示key存在时才设置。 - GET:获取指定key的值,语法为
GET key,若key不存在则返回nil。 - INCR/DECR:将key的值增1或减1,若key不存在则初始化为0后再操作,语法为
INCR key或DECR key。 - INCRBY/DECRBY:按指定数值增减,语法为
INCRBY key increment或DECRBY key decrement。 - MSET/MGET:批量设置或获取多个key的值,语法为
MSET key value [key value ...]或MGET key [key ...]。
| 命令 | 语法示例 | 功能描述 |
|---|---|---|
| SET | SET name "Alice" | 设置key为name的值为"Alice" |
| GET | GET name | 获取key为name的值 |
| INCR | INCR visits | 将visits的值加1 |
| MSET | MSET k1 v1 k2 v2 | 同时设置k1和k2的值 |
列表(List)操作
列表是按顺序插入的字符串元素集合,常用于消息队列、文章列表等场景,常用命令包括:
- LPUSH/RPUSH:从列表左端或右端插入元素,语法为
LPUSH key value [value ...]或RPUSH key value [value ...]。 - LPOP/RPOP:从列表左端或右端弹出元素,语法为
LPOP key或RPOP key。 - LRANGE:获取列表指定范围的元素,语法为
LRANGE key start stop,索引从0开始,-1表示最后一个元素。 - LLEN:获取列表长度,语法为
LLEN key。
| 命令 | 语法示例 | 功能描述 |
|---|---|---|
| LPUSH | LPUSH tasks "task1" | 向tasks列表左侧添加"task1" |
| LRANGE | LRANGE tasks 0 -1 | 获取tasks列表所有元素 |
| RPOP | RPOP tasks | 从tasks列表右侧弹出元素 |
哈希(Hash)操作
哈希是键值对集合,适合存储对象类型数据,如用户信息、商品属性等,常用命令包括:
- HSET:设置哈希表field的值,语法为
HSET key field value。 - HGET:获取哈希表中指定field的值,语法为
HGET key field。 - HGETALL:获取哈希表中所有field和value,语法为
HGETALL key。 - HINCRBY:将哈表中指定field的值增加整数,语法为
HINCRBY key field increment。
| 命令 | 语法示例 | 功能描述 |
|---|---|---|
| HSET | HSET user:1 name "Bob" | 设置user:1的name字段为"Bob" |
| HGETALL | HGETALL user:1 | 获取user:1的所有字段和值 |
| HINCRBY | HINCRBY user:1 score 5 | 将user:1的score字段值加5 |
集合(Set)操作
集合是无序的唯一字符串元素集合,常用于去重、共同好友等场景,常用命令包括:

- SADD:向集合添加一个或多个成员,语法为
SADD key member [member ...]。 - SMEMBERS:获取集合中所有成员,语法为
SMEMBERS key。 - SISMEMBER:判断成员是否是集合的成员,语法为
SISMEMBER key member,返回1表示存在,0表示不存在。 - SUNION:返回多个集合的并集,语法为
SUNION key [key ...]。
| 命令 | 语法示例 | 功能描述 |
|---|---|---|
| SADD | SADD tags "redis" | 向tags集合添加"redis" |
| SMEMBERS | SMEMBERS tags | 获取tags集合所有成员 |
| SISMEMBER | SISMEMBER tags "redis" | 判断"redis"是否在tags集合中 |
有序集合(Sorted Set)操作
有序集合是唯一字符串成员集合,每个成员关联一个double类型的分数,通过分数排序,常用命令包括:
- ZADD:向有序集合添加成员,语法为
ZADD key score member [score member ...]。 - ZRANGE:通过索引区间返回有序集合的成员,语法为
ZRANGE key start stop [WITHSCORES],WITHSCORES表示返回分数。 - ZSCORE:获取成员的分数,语法为
ZSCORE key member。 - ZREMRANGEBYRANK:移除有序集合中指定排名区间的成员,语法为
ZREMRANGEBYRANK key start stop。
| 命令 | 语法示例 | 功能描述 |
|---|---|---|
| ZADD | ZADD leaderboard 100 "Alice" | 向leaderboard添加成员"Alice",分数100 |
| ZRANGE | ZRANGE leaderboard 0 -1 WITHSCORES | 获取leaderboard所有成员及分数 |
| ZREMRANGEBYRANK | ZREMRANGEBYRANK leaderboard 0 1 | 移除leaderboard排名前两名的成员 |
通用键(Key)操作
- DEL:删除一个或多个key,语法为
DEL key [key ...]。 - EXISTS:检查key是否存在,语法为
EXISTS key,返回1表示存在,0表示不存在。 - TTL:获取key的剩余过期时间(秒),语法为
TTL key,返回-1表示永不过期,-2表示key不存在。 - KEYS:查找符合模式的key,语法为
KEYS pattern,如KEYS user:*,生产环境慎用,可能阻塞服务器。
相关问答FAQs
问题1:Redis中如何设置key的过期时间?
答:可以通过SET命令的EX或PX参数设置过期时间,例如SET key value EX 60表示60秒后过期;也可以使用EXPIRE key seconds命令单独设置,例如EXPIRE mykey 300表示5分钟后过期。SETEX命令可以直接设置key值并指定过期时间,语法为SETEX key seconds value。
问题2:Redis事务如何使用,有哪些特点?
答:Redis事务通过MULTI、EXEC、DISCARD和WATCH命令实现,使用MULTI开启事务,后续命令进入队列,通过EXEC执行事务中的所有命令(原子性执行),DISCARD取消事务,事务的特点是:1)原子性:事务中的命令要么全部执行,要么都不执行;2)隔离性:事务执行期间,其他客户端的请求不会干扰;3)不保证回滚:Redis事务不支持回滚,即使某条命令执行失败,后续命令仍会执行。
MULTI
SET key1 "value1"
SET key2 "value2"
EXEC 
