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
可以快速确认键的数据结构,避免误用命令导致错误。
