系列导读:本篇将深入讲解 Redis 字符串(String)的所有操作命令及实际应用场景。
文章目录
一、字符串命令总览
| 命令 | 说明 |
|---|---|
| SET/GET | 设置/获取值 |
| SETEX/SETEX | 设置带过期时间 |
| SETNX | 不存在时设置 |
| MSET/MGET | 批量设置/获取 |
| INCR/DECR | 递增/递减 |
| APPEND | 追加字符串 |
| STRLEN | 获取长度 |
二、基础操作命令
2.1 SET 命令详解
bash
# 基本设置
SET key value
# 带参数设置
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds]
# NX: 不存在时设置
SET lock:key "locked" NX
# XX: 存在时更新
SET key "newvalue" XX
# EX: 秒级过期
SET key "value" EX 60
# PX: 毫秒级过期
SET key "value" PX 60000
# GET: 返回旧值
SET key "newvalue" GET
2.2 GET 相关命令
bash
# 获取值
GET key
# 获取并设置新值
GETSET key "newvalue"
# 获取子串
GETRANGE key 0 5
# 批量获取
MGET key1 key2 key3
2.3 字符串操作
bash
# 追加内容
APPEND key "suffix"
# 获取长度
STRLEN key
# 设置子串
SETRANGE key 0 "new"
三、数值操作命令
3.1 递增操作
bash
# +1
INCR counter
# +n
INCRBY counter 10
# +浮点数
INCRBYFLOAT price 2.5
3.2 递减操作
bash
# -1
DECR counter
# -n
DECRBY counter 5
四、位操作命令
4.1 位操作
bash
# 设置位
SETBIT mykey 0 1
SETBIT mykey 1 0
# 获取位
GETBIT mykey 0
# 统计1的个数
BITCOUNT mykey
# 位运算
BITOP AND destkey key1 key2
BITOP OR destkey key1 key2
BITOP XOR destkey key1 key2
BITOP NOT destkey key
五、实战应用场景
5.1 分布式锁
bash
# 加锁
SET lock:resource "uuid" NX EX 30
# 解锁(Lua脚本保证原子性)
if redis.call("GET", KEYS[1]) == ARGV[1] then
return redis.call("DEL", KEYS[1])
else
return 0
end
5.2 计数器
bash
# 文章阅读量
INCR article:100:views
# 限流计数
INCR rate:user:1001
EXPIRE rate:user:1001 60
5.3 缓存
bash
# 缓存JSON数据
SET cache:user:1001 '{"name":"张三","age":25}'
EXPIRE cache:user:1001 3600
# 缓存穿透防护
SET cache:null:1001 "" EX 60
总结
本文我们学习了:
✅ 基础操作 :SET/GET/MSET/MGET
✅ 数值操作 :INCR/DECR/INCRBY
✅ 位操作 :SETBIT/GETBIT/BITCOUNT
✅ 应用场景:分布式锁、计数器、缓存
下篇预告 :Redis 从入门到精通(五):哈希操作详解
作者 :刘~浪地球
系列 :Redis 从入门到精通(四)
更新时间:2026-04-03