灯下哥谭 灯下哥谭
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

灯下哥谭

灯还亮着
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

  • Redis

    • Redis 运维知识地图:从单机到 Cluster 排障
    • Redis 常用查询操作:五种数据类型速查 + 生产环境避坑
      • 1. 连接与基础排查
      • 2. 数据类型与常用命令速查
        • 2.1 String(字符串)——最常用
        • 2.2 Hash(哈希)——对象存储
        • 2.3 List(列表)——队列/栈
        • 2.4 Set(无序集合)——去重/交集/差集
        • 2.5 ZSet(有序集合)——排行榜
      • 3. 过期与 TTL 相关
      • 4. 键管理命令
      • 5. SCAN 系列:线上只能用 SCAN
      • 6. INFO 各 section 速查
      • 7. 连接与客户端管理
      • 8. 常用 CONFIG 速查
      • 9. 事务与 Lua 脚本速查
      • 10. 常见坑汇总
      • 11. 键空间通知(Keyspace Notifications)
      • 12. Pub/Sub 订阅发布
      • 13. 持久化与备份恢复
      • 14. 性能压测
      • 15. 集群命令(Redis Cluster)
      • 16. 监控与诊断
      • 17. 运维高频场景速查
      • Agent 可直接解析的元数据块
    • Redis 集群部署
    • Redis 大 key 分析:三条排查路径怎么选
    • Redis手动进行主从切换
    • Redis集群添加节点之后数据重新均匀分配
    • Redis槽位slot解读
    • Redis Cluster 新增节点 slot 迁移卡住:"open slots" 故障复盘
    • Redis集群的创建、剔除节点与新增节点操作过程
    • Redis配置文件解读
    • redis cluster压测
    • Redis 慢查询告警与抓包分析排障脚本
    • Redis 的可用内存过高时的自动驱逐 key 策略详解
  • 高性能KV

  • TiDB

  • Elasticsearch

  • 数据管道

  • 其他数据库

  • 数据库
  • Redis
灯下哥谭
2022-03-10
目录

Redis 常用查询操作:五种数据类型速查 + 生产环境避坑

本文是速查表,不含原理推导。覆盖连接与排查、五种数据类型(String/Hash/List/Set/ZSet)常用命令及时间复杂度、过期与 TTL 系列、SCAN 游标遍历、INFO 各 section、CONFIG 热配置、事务与 Lua、键空间通知、Pub/Sub、持久化与备份恢复、性能压测、Cluster 集群操作、监控诊断、运维高频场景等场景。适合需要快速查找 Redis 命令写脚本或做运维操作时来查,不含原理推导和设计思路解释——要看原理请移步 Redis 分类下其他深度文章。

版本说明

以下命令在 Redis 5.0/6.0/7.0 均通用,SCAN 系列命令自 2.8 起就已存在。本文为速查表,生产环境选用命令时优先参考本表具体命令用法,不做额外原理解释。复核时间 2026-09。

# 1. 连接与基础排查

登录一个 Redis 实例,常见参数组合:

redis-cli -c -a <REDIS_PWD> -p 6379 -h <redis-host> --raw
1
  • -c:cluster 模式下自动跟随 MOVED 重定向,单机模式不需要
  • -a:密码认证(命令行传密码会有安全告警,生产环境建议改用 --pass 从文件读取或用 REDISCLI_AUTH 环境变量)
  • --raw:以原始格式输出(不加会把中文等内容转成转义字符)
  • -n <db>:指定数据库编号(默认0)
  • --latency:延迟监控模式
  • --bigkeys:扫描大 key(会遍历,有一定开销但可接受)

批量认证方式(适合脚本):

export REDISCLI_AUTH="<PASSWORD>"
redis-cli -h <HOST> -p <PORT> PING
1
2

基础检查命令:

PING                # 返回 PONG,测试连接
SELECT 0            # 切换数据库
FLUSHDB             # 清空当前数据库(危险!)
FLUSHALL            # 清空所有数据库(危险!)
SHUTDOWN [NOSAVE|SAVE]  # 关闭 Redis
1
2
3
4
5

检查慢查询相关配置:

CONFIG GET slowlog-log-slower-than   # 慢查询阈值,单位微秒,-1关闭,0记录所有
CONFIG GET slowlog-max-len           # 慢查询日志最多保留多少条
1
2

# 2. 数据类型与常用命令速查

# 2.1 String(字符串)——最常用

# 基础读写
GET key                 # O(1) 获取值
SET key value [EX seconds] [PX milliseconds] [NX|XX]  # O(1) 设置值
SETNX key value         # O(1) 仅 key 不存在时设置(分布式锁基础)
SETXX key value         # O(1) 仅 key 存在时设置
GETSET key value        # O(1) 设置新值并返回旧值

# 计数操作
INCR key                # O(1) 原子递增
DECR key                # O(1) 原子递减
INCRBY key increment    # O(1) 指定步长递增
DECRBY key decrement    # O(1) 指定步长递减
INCRBYFLOAT key increment # O(1) 浮点数递增(高并发下有精度风险)

# 字符串操作
APPEND key value        # O(N) 追加字符串,返回追加后长度
STRLEN key              # O(1) 获取字符串长度
GETRANGE key start end  # O(N) 获取子串(闭区间,负数从末尾算)
SETRANGE key offset value # O(N) 从指定偏移量覆写

# 批量操作
MSET key1 value1 key2 value2 ...  # O(N) 批量设置
MGET key1 key2 key3 ...           # O(N) 批量获取

# 其他
GETEX key [EX seconds] [PX milliseconds] [PERSIST]  # O(1) 获取并可设过期
SETEX key seconds value           # O(1) 设置值并指定过期秒数
PSETEX key milliseconds value     # O(1) 设置值并指定过期毫秒
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

时间复杂度速记:所有 O(1) 操作都是原子级别,MGET/MSET 的 N 是 key 数量。

# 2.2 Hash(哈希)——对象存储

# 基础操作
HSET key field value [field value ...]  # O(1) 设置hash字段,返回设置数量
HGET key field            # O(1) 获取hash字段
HDEL key field [field ...]  # O(N) 删除field,返回删除数量
HLEN key                  # O(1) 获取field数量
HEXISTS key field         # O(1) 判断field是否存在

# 批量操作
HMGET key field [field ...]  # O(N) 批量获取field
HMSET key field value [field value ...]  # O(N) 批量设置(已废弃,推荐HSET)

# 获取全部
HGETALL key               # O(N) 获取全部field-value(阻塞风险!)
HKEYS key                 # O(N) 获取所有field
HVALS key                 # O(N) 获取所有value

# 遍历(大数据量必须用这个)
HSCAN key cursor [MATCH pattern] [COUNT count]  # O(1) 渐进式遍历

# 数值操作
HINCRBY key field increment   # O(1) 对数值field递增
HINCRBYFLOAT key field increment  # O(1) 对数值field递增浮点数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

坑:HGETALL 对大 Hash(几十万 field)会瞬间阻塞 Redis 主线程,大 Hash 场景必须用 HSCAN。

# 2.3 List(列表)——队列/栈

# 两端操作
LPUSH key value [value ...]   # O(1) 头部插入,返回列表长度
RPUSH key value [value ...]   # O(1) 尾部插入,返回列表长度
LPOP key                      # O(1) 头部弹出
RPOP key                      # O(1) 尾部弹出

# 索引操作
LRANGE key start stop         # O(N) 获取区间元素(闭区间,-1表示末尾)
LLEN key                      # O(1) 获取列表长度
LINDEX key index              # O(N) 按索引获取,负数从末尾算
LSET key index value          # O(N) 按索引设置新值
LINSERT key BEFORE|AFTER pivot value  # O(N) 在 pivot 前后插入

# 阻塞操作(消息队列核心)
BLPOP key [key ...] timeout   # O(1) 阻塞式左弹
BRPOP key [key ...] timeout   # O(1) 阻塞式右弹
BRPOPLPUSH source destination timeout  # O(1) 阻塞式右弹并左推

# 修整操作
LTRIM key start stop          # O(N) 截断保留区间
LREM key count value          # O(N) 删除 count 个 value(count>0从头,<0从尾,=0全部)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

注:BLPOP/BRPOP 常用于消息队列,但需要业务方处理重试和幂等。

# 2.4 Set(无序集合)——去重/交集/差集

# 基础操作
SADD key member [member ...]     # O(N) 添加成员,返回添加数量
SREM key member [member ...]     # O(N) 删除成员,返回删除数量
SMEMBERS key                     # O(N) 获取全部成员(阻塞风险!)
SCARD key                        # O(1) 获取成员数量
SISMEMBER key member             # O(1) 判断成员是否存在
SRANDMEMBER key [count]          # O(N) 随机获取 count 个(不删除)
SPOP key [count]                 # O(1) 随机弹出 count 个(删除)

# 遍历
SSCAN key cursor [MATCH pattern] [COUNT count]  # O(1) 渐进式遍历

# 集合运算
SINTER key [key ...]             # O(N*M) 交集
SUNION key [key ...]             # O(N) 并集
SDIFF key [key ...]              # O(N) 差集(在第一个集合中不在后面的集合中)
SINTERSTORE destination key [key ...]  # O(N*M) 交集存入新key
SUNIONSTORE destination key [key ...]  # O(N) 并集存入新key
SDIFFSTORE destination key [key ...]   # O(N) 差集存入新key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2.5 ZSet(有序集合)——排行榜

# 基础操作
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]  # O(log N) 添加
ZREM key member [member ...]    # O(N*log N) 删除成员
ZCARD key                       # O(1) 获取成员数量
ZSCORE key member               # O(1) 获取成员分数

# 范围查询
ZRANGE key start stop [WITHSCORES]           # O(log N + M) 按索引升序
ZREVRANGE key start stop [WITHSCORES]        # O(log N + M) 按索引降序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]  # 按分数区间
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]  # 按分数降序

# 排名相关
ZRANK key member            # O(log N) 获取排名(0-based,升序)
ZREVRANK key member         # O(log N) 获取排名(降序)
ZCOUNT key min max          # O(log N) 统计分数区间成员数

# 增量操作
ZINCRBY key increment member  # O(log N) 递增成员分数

# 遍历
ZSCAN key cursor [MATCH pattern] [COUNT count]  # O(1) 渐进式遍历

# 集合运算
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight ...] [AGGREGATE SUM|MIN|MAX]
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight ...] [AGGREGATE SUM|MIN|MAX]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 3. 过期与 TTL 相关

EXPIRE key seconds           # O(1) 设置key的过期秒数,返回1成功0失败
PEXPIRE key milliseconds     # O(1) 设置key的过期毫秒数
TTL key                      # O(1) 查看剩余过期秒数
PTTL key                     # O(1) 查看剩余过期毫秒数
# 返回值:-1表示永不过期,-2表示key不存在,-3表示已过期但在SELECT后待删
EXPIREAT key timestamp       # O(1) 设置UNIX时间戳(秒)
PEXPIREAT key timestamp      # O(1) 设置UNIX时间戳(毫秒)
PERSIST key                  # O(1) 移除key的过期时间
EXPIRE key 0                 # O(1) 立即过期(等同于PERSIST)
1
2
3
4
5
6
7
8
9

# 4. 键管理命令

EXISTS key [key ...]         # O(N) 判断key是否存在,返回存在数量
TYPE key                     # O(1) 返回数据类型(string/hash/list/set/zset/none)
DEL key [key ...]            # O(N) 删除key,返回删除数量
RENAME key newkey            # O(1) 重命名(覆盖式)
RENAMENX key newkey          # O(1) 仅newkey不存在时重命名
RENAME mykey newkey          # 如果newkey已存在会覆盖
OBJECT ENCODING key          # O(1) 查看内部编码(int、raw、ziplist、quicklist、intset、hashtable)
OBJECT IDLETIME key          # O(1) 查看空闲时间(未访问时长,单位秒)
OBJECT REFCOUNT key          # O(1) 查看引用计数(仅 debug 模式)
1
2
3
4
5
6
7
8
9

# 5. SCAN 系列:线上只能用 SCAN

# 为什么不能用 KEYS(坑)
KEYS pattern    # O(N) 阻塞遍历,生产环境禁用!会卡死所有请求

# 正确做法:SCAN 游标遍历
SCAN cursor [MATCH pattern] [COUNT count]  # 返回 [cursor, keys]
# 示例:遍历所有以 mykey 开头的 key
# scan 0 MATCH mykey* COUNT 1000 -> ["12345", ["key1", "key2"]]
# 继续 scan 12345 MATCH mykey* COUNT 1000 直到游标变为 0

# 配套游标遍历(用于大数据类型内部元素)
HSCAN key cursor [MATCH pattern] [COUNT count]   # 遍历hash的field
SSCAN key cursor [MATCH pattern] [COUNT count]   # 遍历set的member
ZSCAN key cursor [MATCH pattern] [COUNT count]   # 遍历zset的member

# 游标使用技巧(重要)
# 1. 终止条件是游标回到 0,不是返回结果为空
# 2. count 是"建议每次扫描的桶数",不是精确返回条数
# 3. 遍历期间数据可能变化(CAP 权衡)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 6. INFO 各 section 速查

# 核心必看
INFO server                # redis_version、uptime_in_days/seconds、port、pid、arch_bits
INFO clients              # connected_clients(已连接数)、blocked_clients(阻塞数)
INFO memory              # used_memory_human、used_memory_peak_human、mem_fragmentation_ratio、mem_allocator

# 性能相关
INFO stats                # total_commands_processed、total_connections_received、instantaneous_ops_per_sec
INFO cpu                  # used_cpu_sys、used_cpu_user、used_cpu_sys_children、used_cpu_user_children

# 持久化相关
INFO persistence          # rdb_enabled、aof_enabled、rdb_last_save_time、aof_last_bgrewrite_status

# 复制相关
INFO replication          # role(master/slave)、master_link_status、connected_slaves

# 集群相关
INFO cluster              # cluster_enabled

# key 统计
INFO keyspace             # db0:keys=xxx,expires=xxx,avg_ttl=xxx

# 命令统计(看慢查询来源)
INFO commandstats         # 各命令调用次数、总耗时、平均耗时、慢查询次数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

常看指标:

  • mem_fragmentation_ratio > 1.5 → 内存碎片多,考虑重启或 MEMORY PURGE
  • blocked_clients > 0 → 有 BLPOP 阻塞等待
  • used_memory_peak_human → 历史峰值内存
  • instantaneous_ops_per_sec → 每秒命令数

# 7. 连接与客户端管理

CLIENT LIST               # 列出所有连接(id、addr、port、cmd、flag、db)
CLIENT KILL [ID <id>] [IP <ip>] [PORT <port>] [LADDR <ip:port>] [SKIPME yes|no]  # 关闭连接
CLIENT GETNAME            # 获取当前连接设置的name
CLIENT SETNAME <name>     # 设置当前连接的名字(方便调试和排查)
CLIENT ID                 # 获取当前连接ID
CLIENT PAUSE <timeout> [WRITE|ALL]  # 暂停所有客户端/写客户端操作
CLIENT INFO               # 当前连接详细信息
CLIENT REPLY ON|OFF|SKIP  # 控制响应方式
1
2
3
4
5
6
7
8

# 8. 常用 CONFIG 速查

# 查询
CONFIG GET pattern        # 支持通配符,如 CONFIG GET slowlog*
CONFIG GET *

# 常用配置项
maxmemory                  # 最大内存限制(如 2gb)
maxmemory-policy           # 内存淘汰策略
    # volatile-lru    - 有过期时间的key使用LRU
    # allkeys-lru     - 所有key使用LRU
    # volatile-random - 有过期时间的key随机
    # allkeys-random  - 所有key随机
    # volatile-ttl    - 有过期时间的key优先删除TTL短的
    # noeviction      - 不淘汰,返回错误
appendonly                 # AOF持久化开关(yes/no)
appendfilename             # AOF文件名
appendfsync                # AOF同步策略(always/everysec/no)
save                       # RDB快照策略(如 "900 1 300 10 60 10000")
requirepass                # 密码
bind                       # 绑定地址(0.0.0.0 允许任意访问)
timeout                    # 客户端空闲超时(0表示禁用)
tcp-keepalive              # TCP保活秒数
databases                  # 数据库数量(默认16)

# 慢查询配置
slowlog-log-slower-than    # 阈值,单位微秒,-1关闭,0记录所有
slowlog-max-len            # 队列最大长度

# 热生效(运行时修改,重启失效)
CONFIG SET maxmemory 2gb
CONFIG SET maxmemory-policy allkeys-lru
CONFIG SET slowlog-log-slower-than 10000   # 10毫秒
CONFIG SET slowlog-max-len 10000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 9. 事务与 Lua 脚本速查

# 事务
MULTI          # 开启事务
SET a 1
INCR a
GET a
EXEC           # 执行事务,返回所有命令结果数组
DISCARD        # 取消事务

# 乐观锁
WATCH key [key ...]  # 监视key,EXEC时检查是否被修改(修改则事务失败回滚)
UNWATCH             # 取消所有 WATCH

# Lua 脚本
EVAL "return redis.call('get', KEYS[1])" 1 mykey   # 执行脚本
EVALSHA <sha1> 1 mykey                            # 用缓存的脚本执行
SCRIPT LOAD "return redis.call('get', KEYS[1])"   # 预加载脚本,返回sha1
SCRIPT EXISTS <sha1> [sha1 ...]                   # 检查脚本是否已缓存
SCRIPT FLUSH                                      # 清空脚本缓存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 10. 常见坑汇总

  1. ✗ HGETALL/SMEMBERS 对大 key 有阻塞风险,大 Hash 或大 Set 场景必须用 HSCAN/SSCAN
  2. ✗ 永远不要在生产环境执行 KEYS,模糊匹配一律用 SCAN
  3. ✗ INCRBYFLOAT 高并发下有浮点精度问题,慎用于精确金额计算
  4. ✗ LRANGE key 0 10 是闭区间,返回11个元素
  5. ✓ ZSet 分数是 64 位浮点数,比较时注意精度
  6. ✓ EXPIRE 返回1成功、0不存在、-2已过期
  7. ✓ CLIENT KILL 会踢掉连接,被踢客户端会收到 connection reset
  8. ✓ BLPOP/BRPOP 返回 nil 表示超时
  9. ✓ Redis 事务不支持回滚(除了 WATCH 的乐观锁失败),这是设计选择
  10. ✓ Redis 6.2+ 支持 CLIENT KILL IP x.x.x.x,老版本需要用 lua 脚本

# 11. 键空间通知(Keyspace Notifications)

# 启用键空间通知(默认关闭)
CONFIG SET notify-keyspace-events KEA

# 订阅事件
PSUBSCRIBE __keyspace@0__:mykey      # 监听 db0 中 mykey 的所有事件
PSUBSCRIBE __keyevent@0__:set        # 监听 db0 中所有 set 操作

# 常用事件类型
# K: 键事件,E: 散列键事件,S: 集合键事件,L: 列表键事件,Z: 有序集合键事件
# g: DEL/EXPIRE 等通用命令
# s: SET/GET 等字符串命令
# h: HSET 等哈希命令
# l: LPUSH 等列表命令
# z: ZADD 等有序集合命令
# $: 字符串命令的写操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

应用场景:实现延迟队列、定时任务、排行榜变更通知等。


# 12. Pub/Sub 订阅发布

# 订阅
SUBSCRIBE channel [channel ...]      # 订阅频道
PSUBSCRIBE pattern [pattern ...]      # 按模式订阅
UNSUBSCRIBE [channel [channel ...]]   # 取消订阅
PUNSUBSCRIBE [pattern [pattern ...]]  # 取消模式订阅

# 发布
PUBLISH channel message               # 向频道发布消息,返回订阅者数量

# 查看
PUBSUB NUMSUB [channel ...]           # 查看频道订阅者数量
PUBSUB CHANNELS [pattern]             # 查看活跃频道列表
PUBSUB PATTERNS                       # 查看模式订阅数量
1
2
3
4
5
6
7
8
9
10
11
12
13

生产环境注意:Pub/Sub 是瞬时的,消息不持久化,离线订阅者收不到。建议业务层做消息确认或用消息队列。


# 13. 持久化与备份恢复

# RDB 快照
SAVE                    # 同步生成 RDB(阻塞)
BGSAVE                  # 后台异步生成 RDB
LASTSAVE                # 上次成功保存的时间戳

# AOF 追加
BGREWRITEAOF            # 触发 AOF 重写压缩
1
2
3
4
5
6
7

恢复数据:只要把 RDB 文件或 AOF 文件放到 Redis 配置的 dir 目录下,启动时自动加载。


# 14. 性能压测

# 官方压测工具 redis-benchmark
redis-benchmark -h <host> -p <port> -n 100000 -c 50 -t get,set
# -n 请求数,-c 并发连接数,-t 指定命令,-q 静默输出
# 压测 Pipeline 效率
redis-benchmark -h <host> -p <port> -n 100000 -t ping -P 16
# -P 每个 Pipeline 包含的命令数
1
2
3
4
5
6

# 15. 集群命令(Redis Cluster)

# Cluster 信息
CLUSTER INFO                     # 集群状态
CLUSTER NODES                    # 集群节点列表
CLUSTER SLOTS                    # 槽位分配

# 节点操作
CLUSTER MEET <ip> <port>         # 新节点加入集群
CLUSTER FORGET <node_id>         # 从集群移除节点
CLUSTER REPLICATE <node_id>      # 将当前节点设为指定主节点的从节点

# 槽位管理
CLUSTER ADDSLOTS <slot> [slot ...]      # 为节点分配槽位
CLUSTER DELSLOTS <slot> [slot ...]      # 移除槽位
CLUSTER SETSLOT <slot> NODE <node_id>   # 迁移槽位归属
CLUSTER GETKEYSINSLOT <slot> <count>    # 查看槽位中的 key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 16. 监控与诊断

# 慢查询
SLOWLOG GET [count]              # 获取最近 count 条慢查询
SLOWLOG LEN                      # 获取慢查询队列长度
SLOWLOG RESET                    # 清空慢查询队列

# 内存分析
MEMORY USAGE key                 # O(1) 查看 key 占用的字节数
MEMORY DOCTOR                    # 给出内存使用建议
MEMORY STATS                     # 详细内存统计

# 实时命令监控(生产禁用!)
MONITOR                          # 实时输出所有命令,会显著拖慢实例

# 大 key 分析
redis-cli --bigkeys              # 扫描各类型最大的 key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 17. 运维高频场景速查

# 查找大 key
redis-cli --bigkeys -h <host> -p <port>

# 安全清空(带认证)
redis-cli -a <PASSWORD> FLUSHDB
redis-cli -a <PASSWORD> FLUSHALL ASYNC  # 异步清空,不阻塞

# 导出所有 key(迁移用)
redis-cli --scan | head -n 1000 | xargs redis-cli -a <PWD> GET

# 查看 key 的过期时间
TTL key                         # 秒
PTTL key                        # 毫秒

## 18. Server 管理命令

```bash
# 服务器信息
INFO [section]                  # 查看服务器信息(可指定 section)
DEBUG SEGFAULT                  # 模拟崩溃(测试用)
SHUTDOWN [NOSAVE|SAVE]          # 关闭服务器

# 配置重载
CONFIG REWRITE                  # 重写配置文件(持久化 runtime 修改)
CONFIG RESETSTAT                # 重置统计信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# Agent 可直接解析的元数据块

{
  "runbook": {
    "task": "redis-commonly-used-commands-cheatsheet",
    "permalinks": ["/pages/032143/"],
    "category": "database/Redis",
    "tags": ["redis", "cheatsheet", "commands", "datatype", "ttl", "scan", "info", "config", "transaction"],
    "redis_versions": ["5.0", "6.0", "7.0"],
    "verified_date": "2026-09"
  }
}
1
2
3
4
5
6
7
8
9
10
#生产SOP#Redis
上次更新: 9/11/2026

← Redis 运维知识地图:从单机到 Cluster 排障 Redis 集群部署→

最近更新
01
DeepSeek Harness 实战 06|学习笔记:插件、工具、技能不在同一个维度上 原创
09-11
02
DeepSeek Harness 实战 05|让两个编码 Agent 共用一份长期记忆 原创
09-09
03
DeepSeek Harness 实战 04|学习笔记:从「已知限制」里读出三处设计张力 原创
09-08
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式