13. 速查表
13.1 数据类型命令速查
| 类型 | 命令 | 说明 |
|---|---|---|
| String | SET key val | 设置值 |
| GET key | 获取值 | |
| MSET / MGET | 批量设置/获取 | |
| INCR / DECR | 自增/自减 | |
| INCRBY key n | 增加 n | |
| SETNX key val | 不存在才设置 | |
| List | LPUSH / RPUSH | 左/右推入 |
| LPOP / RPOP | 左/右弹出 | |
| LRANGE start stop | 范围查询 | |
| LLEN key | 列表长度 | |
| BRPOP key timeout | 阻塞弹出 | |
| Hash | HSET key field val | 设置字段 |
| HGET key field | 获取字段 | |
| HGETALL key | 获取所有字段 | |
| HDEL key field | 删除字段 | |
| HINCRBY key field n | 字段值增 n | |
| Set | SADD key member | 添加成员 |
| SMEMBERS key | 所有成员 | |
| SISMEMBER key m | 是否是成员 | |
| SINTER key1 key2 | 交集 | |
| SUNION key1 key2 | 并集 | |
| ZSet | ZADD key score m | 添加带分成员 |
| ZRANGE key 0 -1 | 正序范围 | |
| ZREVRANGE key 0 2 | 逆序前 N | |
| ZSCORE key m | 获取分数 | |
| ZINCRBY key n m | 分数加 n |
13.2 键管理速查
| 命令 | 说明 | 时间复杂度 |
|---|---|---|
| EXISTS key | 判断键是否存在 | O(1) |
| DEL key | 删除键 | O(N) N=字段数 |
| UNLINK key | 异步删除键 | O(1) |
| EXPIRE key seconds | 设置过期时间 | O(1) |
| TTL key | 剩余存活时间 | O(1) |
| PERSIST key | 取消过期 | O(1) |
| TYPE key | 键的数据类型 | O(1) |
| RENAME old new | 重命名键 | O(1) |
| SCAN cursor | 迭代键空间 | O(1) 每次调用 |
13.3 服务器管理速查
| 命令 | 说明 |
|---|---|
| INFO | 服务器信息(ALL/MEMORY/CPU/REPLICATION/...) |
| CONFIG GET parameter | 获取配置 |
| CONFIG SET parameter value | 修改配置 |
| CONFIG REWRITE | 持久化配置到文件 |
| DBSIZE | 当前库键数量 |
| FLUSHDB | 清空当前库 |
| FLUSHALL | 清空所有库(慎用!) |
| MONITOR | 实时监控所有命令 |
| CLIENT LIST | 列出客户端连接 |
| CLIENT KILL | 断开客户端连接 |
| SLOWLOG GET n | 查看慢查询 |
| BGREWRITEAOF | 触发 AOF 重写 |
| BGSAVE | 后台 RDB 快照 |
| LASTSAVE | 上次快照时间戳 |
13.4 开发规范速查
- 🔑键命名规范:业务:对象:ID:属性,如user:1001:profile
- 📏Key 长度:尽量控制在 44 字节以内(jemalloc 内存对齐)
- 📦Value 大小:String 不超过 10KB,Hash/Set/ZSet 元素不超过 5000 个
- ⏱️过期时间:所有缓存 Key 都要设置过期时间,防止内存泄漏
- 🚫禁用命令:KEYS、FLUSHALL、FLUSHDB在生产环境应禁用
- 🔌连接池:使用连接池复用连接,避免频繁创建/销毁
- 🔄Pipeline:批量操作优先使用 Pipeline
- 🧵序列化:复杂对象用 MessagePack/Protobuf 替代 JSON,节省空间
13.5 部署架构选择
| 场景 | 架构 | 节点数 |
|---|---|---|
| 开发/测试 | 单节点 | 1 |
| 小型生产(读多写少) | 主从 + Sentinel | 1 主 2 从 + 3 哨兵 |
| 中型生产(高可用) | 主从 + Sentinel | 1 主 2 从 + 3 哨兵(每主) |
| 大型生产(数据量大) | Redis Cluster | 至少 6 节点(3 主 3 从) |
| 超大规模 | Redis Cluster + 代理 | 多集群 + Proxy(如 Twemproxy) |