Redis字符串命令
字符串是Redis最基本的数据类型,可以存储文本、数字、二进制数据。
SET命令
基本语法
Bash
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds]
常用示例
Bash
# 设置键值
SET name "Redis"
# 设置并设置过期时间(秒)
SET token "abc123" EX 3600
# 设置并设置过期时间(毫秒)
SET session "data" PX 60000
# 仅当key不存在时设置(NX)
SET counter 0 NX
# 仅当key存在时设置(XX)
SET name "NewValue" XX
# 设置并返回旧值(GET)
SET name "Updated" GET
NX常用于实现分布式锁,XX用于更新已存在的值。
GET命令
基本语法
Bash
GET key
使用示例
Bash
# 获取值
GET name
# 返回: "Redis"
# 获取不存在的key
GET notexist
# 返回: (nil)
MSET/MGET批量操作
批量设置
Bash
# 同时设置多个键值
MSET key1 "value1" key2 "value2" key3 "value3"
批量获取
Bash
# 同时获取多个值
MGET key1 key2 key3
# 返回:
# 1) "value1"
# 2) "value2"
# 3) "value3"
MSET/MGET减少网络往返,提高效率。
INCR/DECR数值操作
增减命令
Bash
# 自增1
INCR counter
# 返回: 1
# 自减1
DECR counter
# 返回: 0
# 自增指定值
INCRBY counter 10
# 返回: 10
# 自减指定值
DECRBY counter 5
# 返回: 5
# 自增浮点数
INCRBYFLOAT price 2.5
INCR/DECR操作是原子性的,适合计数器场景。
APPEND追加字符串
基本语法
Bash
APPEND key value
使用示例
Bash
# 设置初始值
SET log "Error:"
# 追加内容
APPEND log " Connection failed"
# 返回: 21(新字符串长度)
GET log
# 返回: "Error: Connection failed"
STRLEN获取长度
基本语法
Bash
STRLEN key
使用示例
Bash
SET message "Hello Redis"
STRLEN message
# 返回: 11
GETRANGE/SETRANGE子串操作
获取子串
Bash
SET text "Hello World"
# 获取索引范围(0开始,包含两端)
GETRANGE text 0 4
# 返回: "Hello"
GETRANGE text -5 -1
# 返回: "World"(负索引从末尾开始)
设置子串
Bash
SET text "Hello World"
# 从指定位置替换
SETRANGE text 6 "Redis"
GET text
# 返回: "Hello Redis"
EXPIRE过期设置
设置过期时间
Bash
# 设置10秒后过期
SET key "value"
EXPIRE key 10
# 设置过期时间戳
EXPIREAT key 1700000000
# 查看剩余过期时间
TTL key
# 返回剩余秒数,-1表示永不过期,-2表示已过期
常用命令速查表
| 命令 | 说明 | 示例 |
|---|---|---|
| SET | 设置键值 | SET k v |
| GET | 获取值 | GET k |
| MSET | 批量设置 | MSET k1 v1 k2 v2 |
| MGET | 批量获取 | MGET k1 k2 |
| INCR | 自增1 | INCR k |
| DECR | 自减1 | DECR k |
| INCRBY | 自增N | INCRBY k 10 |
| APPEND | 追加字符串 | APPEND k v |
| STRLEN | 获取长度 | STRLEN k |
| GETRANGE | 获取子串 | GETRANGE k 0 5 |
要点总结
- SET支持NX(不存在才设置)、XX(存在才设置)、EX/PX(过期时间)
- INCR/DECR是原子操作,适合实现计数器
- MSET/MGET批量操作减少网络开销
- GETRANGE支持负索引,-1表示最后一个字符
- EXPIRE设置过期,TTL查看剩余时间
📝 发现内容有误?点击此处直接编辑