以下是将 Redis 常用命令按功能分类 后的详细整理和解释,涵盖开发、运维、排查的核心场景,适用于自建环境和云上 Redis 实例。
✅ Redis 常用命令分类与详解(全方位标准手册)
🧱 一、键(Key)管理命令
| 命令 | 说明 | 示例 | 备注 |
|---|
SET key value | 设置 key 的值 | SET name Alice | 可附加 EX 过期时间 |
GET key | 获取 key 的值 | GET name | 返回字符串或 nil |
DEL key | 删除 key | DEL name | 支持批量删除 |
EXPIRE key seconds | 设置 key 的过期时间(秒) | EXPIRE name 60 | 过期后自动删除 |
TTL key | 查看 key 剩余存活时间 | TTL name | -1=永久,-2=不存在 |
KEYS pattern | 模糊匹配 key | KEYS user:* | ❗性能差,勿在线上使用 |
SCAN cursor [MATCH pattern] [COUNT n] | 增量遍历 key | SCAN 0 MATCH user:* | 替代 KEYS,更安全 |
📦 二、字符串(String)类型命令
| 命令 | 说明 | 示例 | 备注 |
|---|
SET key value [EX seconds] | 设置键值并设置过期时间 | SET age 18 EX 60 | 适合缓存场景 |
GET key | 获取字符串值 | GET age | - |
INCR key | 自增(整数) | INCR counter | 初始不存在时设为 1 |
DECR key | 自减 | DECR counter | - |
APPEND key value | 拼接字符串 | APPEND name " Chen" | 拼接字符串末尾 |
GETRANGE key start end | 子串截取 | GETRANGE name 0 3 | 类似 substr |
📋 三、哈希(Hash)类型命令(如 Map)
| 命令 | 说明 | 示例 | 备注 |
|---|
HSET key field value | 设置字段值 | HSET user name Alice | 一次可设置多个字段 |
HGET key field | 获取字段值 | HGET user name | - |
HDEL key field | 删除字段 | HDEL user age | - |
HGETALL key | 获取所有字段和值 | HGETALL user | - |
HEXISTS key field | 判断字段是否存在 | HEXISTS user name | 返回 1/0 |
HINCRBY key field increment | 字段值自增 | HINCRBY user score 10 | 支持负数 |
📚 四、列表(List)类型命令(队列)
| 命令 | 说明 | 示例 | 备注 |
|---|
LPUSH key value | 左侧插入 | LPUSH jobs job1 | 入队操作 |
RPUSH key value | 右侧插入 | RPUSH jobs job2 | - |
LPOP key | 左侧弹出 | LPOP jobs | 出队 |
RPOP key | 右侧弹出 | RPOP jobs | - |
LRANGE key start stop | 获取区间元素 | LRANGE jobs 0 -1 | -1表示末尾 |
LLEN key | 获取长度 | LLEN jobs | - |
📌 五、集合(Set)类型命令(无序去重)
| 命令 | 说明 | 示例 | 备注 |
|---|
SADD key member | 添加元素 | SADD tags redis | 自动去重 |
SREM key member | 删除元素 | SREM tags redis | - |
SMEMBERS key | 获取全部元素 | SMEMBERS tags | 无序 |
SISMEMBER key member | 是否存在 | SISMEMBER tags redis | 返回 1/0 |
SUNION key1 key2 | 并集 | SUNION s1 s2 | 支持多集合 |
SINTER key1 key2 | 交集 | SINTER s1 s2 | - |
SDIFF key1 key2 | 差集 | SDIFF s1 s2 | - |
📊 六、有序集合(Sorted Set)命令(带权重排序)
| 命令 | 说明 | 示例 | 备注 |
|---|
ZADD key score member | 添加有序元素 | ZADD leaderboard 100 user1 | 按 score 排序 |
ZINCRBY key increment member | 增加成员分数 | ZINCRBY leaderboard 10 user1 | - |
ZRANGE key start stop [WITHSCORES] | 正序返回成员 | ZRANGE leaderboard 0 -1 WITHSCORES | - |
ZREVRANGE key start stop | 逆序返回成员 | ZREVRANGE leaderboard 0 2 | 排行榜使用 |
ZRANK key member | 获取排序位置 | ZRANK leaderboard user1 | - |
ZREM key member | 删除元素 | ZREM leaderboard user1 | - |
🔒 七、事务与锁相关命令
| 命令 | 说明 | 示例 | 备注 |
|---|
MULTI | 开始事务 | MULTI | 命令入队,不立即执行 |
EXEC | 提交事务 | EXEC | 执行队列命令 |
DISCARD | 放弃事务 | DISCARD | 回滚 |
WATCH key | 乐观锁监视 | WATCH product:1234 | 与 MULTI/EXEC 联用 |
UNWATCH | 取消监视 | UNWATCH | - |
🧠 八、持久化命令
| 命令 | 说明 | 示例 | 备注 |
|---|
SAVE | 同步保存快照 | SAVE | 阻塞操作 |
BGSAVE | 异步保存快照 | BGSAVE | 推荐使用 |
BGREWRITEAOF | 重写 AOF 文件 | BGREWRITEAOF | 减小 AOF 文件 |
CONFIG GET save | 查看 RDB 规则 | CONFIG GET save | - |
CONFIG GET appendonly | 查看是否启用 AOF | CONFIG GET appendonly | - |
🚨 九、监控与调试命令
| 命令 | 说明 | 示例 | 备注 |
|---|
INFO | 查看实例状态 | INFO memory / INFO stats | 多分类:memory、replication、cpu等 |
MONITOR | 实时查看命令 | MONITOR | 慎用,性能消耗大 |
SLOWLOG get | 获取慢日志 | SLOWLOG GET 10 | 默认保留 128 条 |
CLIENT LIST | 查看客户端连接 | CLIENT LIST | 包含 IP、状态等 |
LATENCY DOCTOR | 延迟诊断 | LATENCY DOCTOR | 推荐监控使用 |
🔁 十、集群与高可用命令
| 命令 | 说明 | 示例 | 备注 |
|---|
CLUSTER NODES | 查看集群节点 | CLUSTER NODES | 含 nodeId、ip、role |
CLUSTER SLOTS | 查看槽位分布 | CLUSTER SLOTS | 客户端分片路由依赖 |
CLUSTER FAILOVER | 主动触发主备切换 | CLUSTER FAILOVER | 手动演练用 |
SENTINEL masters | 查看主节点 | SENTINEL masters | 高可用场景下使用 |
SENTINEL failover <name> | 强制主从切换 | SENTINEL failover mymaster | 需在 Sentinel 模式中 |
🧰 十一、配置管理命令(线上慎用)
| 命令 | 说明 | 示例 | 备注 |
|---|
CONFIG GET <parameter> | 获取配置 | CONFIG GET maxmemory | - |
CONFIG SET <parameter> <value> | 修改配置 | CONFIG SET maxclients 1000 | 持久化需写 conf 文件 |
CONFIG REWRITE | 将内存配置写入配置文件 | CONFIG REWRITE | 云Redis一般禁用此操作 |
展望:提供「全套命令操作脚本」「结合云平台 Redis 控制台使用指南」「命令+Grafana 监控组合用例」等内容,继续扩展成一份完整的 Redis 运维实战宝典。