Skip to content

13. 速查表

13.1 数据类型命令速查

类型命令说明
StringSET key val设置值
GET key获取值
MSET / MGET批量设置/获取
INCR / DECR自增/自减
INCRBY key n增加 n
SETNX key val不存在才设置
ListLPUSH / RPUSH左/右推入
LPOP / RPOP左/右弹出
LRANGE start stop范围查询
LLEN key列表长度
BRPOP key timeout阻塞弹出
HashHSET key field val设置字段
HGET key field获取字段
HGETALL key获取所有字段
HDEL key field删除字段
HINCRBY key field n字段值增 n
SetSADD key member添加成员
SMEMBERS key所有成员
SISMEMBER key m是否是成员
SINTER key1 key2交集
SUNION key1 key2并集
ZSetZADD 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
小型生产(读多写少)主从 + Sentinel1 主 2 从 + 3 哨兵
中型生产(高可用)主从 + Sentinel1 主 2 从 + 3 哨兵(每主)
大型生产(数据量大)Redis Cluster至少 6 节点(3 主 3 从)
超大规模Redis Cluster + 代理多集群 + Proxy(如 Twemproxy)