01. 键管理——增删查改加过期
Redis 键管理跟文件管理差不多,多了一个「自动过期」功能,特别好用。
bash
SET key1 "hello"
GET key1
EXISTS key1
DEL key1
TYPE key1
# 过期(Redis 特色)
EXPIRE session 3600 # 3600 秒后自动删
TTL session # 还剩多少秒
PERSIST session # 取消过期
# 批量操作
KEYS user:* # 生产环境千万别用!阻塞全库
SCAN 0 MATCH user:* COUNT 100 # 渐进式扫描,推荐生产环境严禁 KEYS *,几百万个 key 时能把 Redis 卡死。用 SCAN 代替。
02. 事务——一次性打包执行
Redis 事务用 MULTI/EXEC 包裹,里面命令按顺序执行,中间不会被别的客户端插队。
注意:Redis 事务不支持回滚!中间某条出错,其他照样执行,这点跟 MySQL 完全不同。
bash
MULTI # 开始
SET a 1
SET b 2
INCR a
EXEC # 全执行 → OK, OK, 2
DISCARD # 放弃事务
# 乐观锁(WATCH)
WATCH balance
MULTI
DECRBY balance 100
EXEC # balance 被改了则返回 nil03. 管道(Pipeline)——批量加速
正常是一发一回,100 个命令 = 100 次网络往返。Pipeline 把一堆命令打包一起发,Redis 处理完打包回,就一次往返。批量写入性能提升几十倍。
bash
# redis-cli 管道
cat commands.txt | redis-cli --pipe
# commands.txt:
# SET k1 v1
# SET k2 v2
# SET k3 v3Pipeline 不保证原子性——中间可能被其他客户端命令插入。要原子性用 Lua 脚本或事务。
04. Pub/Sub——发布订阅
Redis Pub/Sub 是轻量消息系统。有人往「频道」发消息,订阅了该频道的全收到。适合实时通知、聊天推送。
注意:消息不持久化——发时没人订阅,消息直接没了。
bash
# 终端1:订阅
SUBSCRIBE news
# 终端2:发布
PUBLISH news "重大新闻!"
# 模式订阅
PSUBSCRIBE news.*
UNSUBSCRIBE news知识测验
第 1/5 题正确 0
生产环境查找键该用什么?
下一节
下一节 持久化机制