Redis String 是最基础的数据类型,本质上就是一段字节序列。
但工程上它非常强,因为它能做很多事:
- 普通缓存值
- JSON 字符串
- token
- 计数器
- 开关位
- 小对象快照
最简单:
SET product:1001:name "机械键盘"
GET product:1001:name带过期:
SET cache:product:1001 "{\"name\":\"机械键盘\",\"price\":399}" EX 300只在不存在时设置:
SET lock:order:9001 "token-abc" NX PX 30000这就是 Redis 的魅力之一:
同一个 SET
既能当普通写入
也能当缓存写入
也能当分布式锁入口#String 最经典的另一面:计数器
SET article:88:views 0
INCR article:88:views
INCRBY article:88:views 10
DECR inventory:sku:10088Redis 官方一直把 INCR 这类命令当成典型原子计数模式。
这类能力特别适合:
- 浏览量
- 点赞数
- 限流计数
- 配额消耗
- 简单库存扣减模型的一部分
String = 实时调度中心里最基础的单格寄存柜
能放一张纸条
也能放一个计数器
也能挂一个带过期时间的状态牌