Redis作为一种高性能的键值存储系统,其简单命令的掌握是快速上手的基础,Redis命令通常以键(key)和值(value)为核心,通过客户端工具即可直接操作,以下从常用数据类型出发,详细解析基础命令的使用场景和语法。

字符串(String)类型是最简单的数据结构,常用于缓存或计数器,设置键值对使用SET key value
,例如SET username "Alice"
,若键已存在则覆盖;获取值用GET key
,如GET username
返回"Alice",若需设置过期时间,可用SETEX key seconds value
,例如SETEX temp_code 60 "123456"
表示60秒后键自动删除,批量操作时,MSET key1 value1 key2 value2
可同时设置多个键值,MGET key1 key2
则批量获取值,数值增减操作是字符串类型的特色,INCR key
将值加1(值需为整数),DECR key
减1,INCRBY key increment
指定增量,如INCRBY score 5
表示分数加5。
哈希(Hash)类型适用于存储对象结构,例如用户信息。HSET key field value
用于设置字段值,如HSET user1 name "Bob" age 30
;HGET key field
获取单个字段值,HGETALL key
返回所有字段和值;HKEYS key
获取所有字段名,HVALS key
获取所有值,若需删除字段,使用HDEL key field
,如HDEL user1 age
。
列表(List)类型是字符串元素的有序集合,常用于消息队列。LPUSH key value1 value2
在左侧(头部)插入元素,RPUSH key value
在右侧(尾部)插入;LPOP key
弹出左侧元素,RPOP key
弹出右侧元素;LRANGE key start stop
获取范围元素,如LRANGE messages 0 4
获取前5个元素(索引从0开始)。
集合(Set)类型是唯一元素的无序集合,支持交集、并集等操作。SADD key member1 member2
添加元素(重复自动忽略),SMEMBERS key
返回所有元素;SISMEMBER key member
判断元素是否存在(返回1或0);SINTER key1 key2
返回两个集合的交集,SUNION key1 key2
返回并集。

有序集合(ZSet)在集合基础上增加了分数(score)属性,用于排序。ZADD key score1 member1 score2 member2
添加成员,如ZADD leaderboard 100 "Tom" 200 "Jerry"
;ZRANGE key start stop [WITHSCORES]
按分数升序获取成员,加WITHSCORES
显示分数;ZREVRANGE key start stop [WITHSCORES]
按降序获取;ZSCORE key member
获取成员分数。
以下为常用命令速查表:
操作类型 | 命令示例 | 功能说明 |
---|---|---|
字符串 | SET key value | 设置键值 |
GET key | 获取键值 | |
INCR key | 数值加1 | |
哈希 | HSET key field value | 设置字段值 |
HGETALL key | 获取所有字段和值 | |
列表 | LPUSH key value | 头部插入元素 |
LRANGE key 0 -1 | 获取所有元素 | |
集合 | SADD key member | 添加元素 |
SMEMBERS key | 获取所有元素 | |
有序集合 | ZADD key score member | 添加成员及分数 |
ZRANGE key 0 -1 WITHSCORES | 获取所有成员及分数(升序) |
相关问答FAQs
Q1: Redis的EXPIRE命令和SETEX命令有什么区别?
A: EXPIRE命令用于为已存在的键设置过期时间,语法为EXPIRE key seconds
,例如SET mykey "hello"
后执行EXPIRE mykey 10
,表示10秒后删除mykey,而SETEX命令是设置键值的同时指定过期时间,语法为SETEX key seconds value
,例如SETEX mykey 10 "hello"
,相当于SET mykey "hello"
和EXPIRE mykey 10
的组合操作,适合一次性设置键值和过期时间的场景。

Q2: 如何查看Redis中所有符合某个模式的键?
A: 使用KEYS命令可以匹配模式查找键,语法为KEYS pattern
,例如KEYS user:*
查找所有以"user:"开头的键,但需注意,KEYS命令会阻塞Redis服务器,在生产环境中不建议直接使用,推荐在低峰期或通过SCAN命令分批扫描(语法SCAN cursor MATCH pattern COUNT count
),例如SCAN 0 MATCH user:* COUNT 10
,通过游标逐步遍历,避免阻塞服务。