Redis命令查询是开发和运维人员日常工作中不可或缺的技能,掌握Redis命令不仅能高效操作数据,还能优化系统性能,Redis作为高性能的内存数据库,支持丰富的数据结构,每种结构都有对应的命令集,本文将详细解析Redis常用命令的分类、语法及使用场景,帮助读者快速查询和应用。

键值操作命令
键值操作是Redis最基础的功能,主要用于管理键的生命周期和基本信息,常用命令包括:
- SET:设置键值,语法为
SET key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL],例如SET user:1001 "Alice" EX 3600表示设置键user:1001的值为"Alice",并设置3600秒过期。 - GET:获取键值,语法为
GET key,若键不存在则返回nil。 - DEL:删除键,语法为
DEL key [key ...],支持批量删除,例如DEL key1 key2 key3。 - EXISTS:检查键是否存在,语法为
EXISTS key,返回1(存在)或0(不存在)。 - TTL:查看键的剩余生存时间,语法为
TTL key,返回剩余秒数,若键不存在返回-2,若键永不过期返回-1。 - KEYS:模糊匹配键,语法为
KEYS pattern,例如KEYS user:*匹配所有以"user:"开头的键,但生产环境慎用,可能阻塞服务器。
字符串操作命令
字符串是Redis最简单的数据结构,常用于缓存、计数器等场景,常用命令包括:
- INCR:将键的值加1,语法为
INCR key,若键不存在则初始化为0后加1,例如INCR visit_count用于计数。 - DECR:将键的值减1,语法为
DECR key,与INCR逻辑相反。 - INCRBY:按指定增量增加,语法为
INCRBY key increment,例如INCRBY score 5将score加5。 - APPEND:追加值到字符串末尾,语法为
APPEND key value,若键不存在则创建并赋值。 - STRLEN:获取字符串长度,语法为
STRLEN key,例如STRLEN message返回message的字符长度。
列表操作命令
列表是双向链表结构,支持头尾操作,常用于消息队列、任务列表等,常用命令包括:
- LPUSH:从左侧插入元素,语法为
LPUSH key value [value ...],例如LPUSH tasks "task1"将"task1"插入列表左侧。 - RPUSH:从右侧插入元素,语法为
RPUSH key value [value ...],与LPUSH方向相反。 - LPOP:从左侧弹出元素,语法为
LPOP key,返回并移除列表最左侧元素。 - RPOP:从右侧弹出元素,语法为
RPOP key,与LPOP方向相反。 - LRANGE:获取列表片段,语法为
LRANGE key start stop,例如LRANGE tasks 0 -1返回整个列表,0表示起始位置,-1表示结束位置。
哈希操作命令
哈希是键值对集合,适合存储对象类型数据,如用户信息,常用命令包括:

- HSET:设置哈希字段值,语法为
HSET key field value [field value ...],例如HSET user:1001 name "Bob" age 25。 - HGET:获取哈希字段值,语法为
HGET key field,例如HGET user:1001 name返回"Bob"。 - HGETALL:获取哈希所有字段和值,语法为
HGETALL key。 - HDEL:删除哈希字段,语法为
HDEL key field [field ...],例如HDEL user:1001 age删除age字段。 - HEXISTS:检查哈希字段是否存在,语法为
HEXISTS key field,返回1(存在)或0(不存在)。
集合操作命令
集合是无序且不重复的元素集合,支持交集、并集等操作,常用命令包括:
- SADD:向集合添加元素,语法为
SADD key member [member ...],例如SADD tags "redis" "database"。 - SMEMBERS:获取集合所有元素,语法为
SMEMBERS key。 - SREM:从集合移除元素,语法为
SREM key member [member ...]。 - SINTER:计算多个集合的交集,语法为
SINTER key [key ...],例如SINTER set1 set2返回两个集合的交集。 - SUNION:计算多个集合的并集,语法为
SUNION key [key ...]。
有序集合操作命令
有序集合是带分数的集合,元素按分数排序,常用于排行榜,常用命令包括:
- ZADD:添加有序集合元素,语法为
ZADD key [NX|XX] [CH] [INCR] score member [score member ...],例如ZADD leaderboard 100 "player1"添加"player1"分数为100。 - ZRANGE:获取指定排名区间的元素,语法为
ZRANGE key start stop [WITHSCORES],例如ZRANGE leaderboard 0 4 WITHSCORES返回前5名及分数。 - ZSCORE:获取元素分数,语法为
ZSCORE key member,例如ZSCORE leaderboard "player1"返回"player1"的分数。 - ZREM:移除元素,语法为
ZREM key member [member ...]。
其他常用命令
- EXPIRE:设置键的过期时间,语法为
EXPIRE key seconds,例如EXPIRE temp_data 60设置60秒后过期。 - TYPE:查看键的数据类型,语法为
TYPE key,返回string、hash、list等。 - SCAN:增量遍历键,语法为
SCAN cursor [MATCH pattern] [COUNT count],避免KEYS命令阻塞。
表格:Redis常用命令速查
| 命令分类 | 命令 | 语法 | 功能描述 |
|---|---|---|---|
| 键值操作 | SET | SET key value [EX seconds] |
设置键值及过期时间 |
| 字符串 | INCR | INCR key |
键值加1 |
| 列表 | LPUSH | LPUSH key value |
左侧插入元素 |
| 哈希 | HSET | HSET key field value |
设置哈希字段值 |
| 集合 | SADD | SADD key member |
添加集合元素 |
| 有序集合 | ZADD | ZADD key score member |
添加有序集合元素 |
| 通用 | TTL | TTL key |
查看剩余过期时间 |
相关问答FAQs
Q1: Redis中如何批量删除匹配的键?
A1: 可以结合KEYS和DEL命令,但KEYS命令在键较多时可能阻塞服务器,生产环境推荐使用SCAN命令遍历+DEL删除,SCAN 0 MATCH user:* COUNT 100,然后对返回的键执行DEL,Redis 4.0+支持UNLINK命令,异步删除键,性能更优。
Q2: 如何查看Redis中某个键的数据类型?
A2: 使用TYPE命令,语法为TYPE key,例如TYPE user:1001,若键是哈希则返回hash,若是字符串则返回string,若键不存在,返回none,通过TYPE可以快速确认键的数据结构,避免误用命令导致错误。

