Redis 服务器

Redis 服务器(Server)完全攻略

“Redis 大脑” —— 掌握服务器管理、性能监控、安全加固、故障排查,打造 99.99% 可用 的 Redis 集群!


一、Redis 服务器核心概念

概念说明
单线程模型事件驱动(I/O 多路复用),无锁竞争
内存数据库数据主要在内存,RDB/AOF 持久化
主从复制异步复制,读写分离
高可用Sentinel / Cluster
集群模式分片 + 故障转移

二、服务器管理命令全表

命令说明示例
INFO [section]服务器信息INFO server
CONFIG GET *获取配置CONFIG GET maxmemory
CONFIG SET param value动态设置CONFIG SET maxmemory 2gb
SLOWLOG GET [n]慢查询日志SLOWLOG GET 10
SLOWLOG LEN慢查询数量SLOWLOG LEN
SLOWLOG RESET清空慢查询SLOWLOG RESET
DBSIZE当前 DB key 数量DBSIZE
FLUSHDB清空当前 DBFLUSHDB
FLUSHALL清空所有 DBFLUSHALL
SHUTDOWN [SAVE|NOSAVE]关机SHUTDOWN SAVE
MONITOR实时命令监控MONITOR
CLIENT LIST客户端列表CLIENT LIST
MEMORY USAGE keykey 内存占用MEMORY USAGE user:1
MEMORY DOCTOR内存诊断MEMORY DOCTOR
LATENCY DOCTOR延迟诊断LATENCY DOCTOR

三、INFO 命令详解(重点监控项)

INFO all

关键 section

Section关键指标说明
serverredis_version, uptime_in_seconds版本、运行时间
clientsconnected_clients, blocked_clients连接数
memoryused_memory, used_memory_rss, mem_fragmentation_ratio内存使用
persistencerdb_last_save_time, aof_enabled持久化状态
statsinstantaneous_ops_per_sec, keyspace_hitsQPS、命中率
replicationrole, connected_slaves主从状态
cpuused_cpu_sys, used_cpu_userCPU 占用

四、服务器配置(redis.conf)核心项

# 基础
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid

# 安全
requirepass your_strong_password
rename-command FLUSHALL ""
rename-command CONFIG "CONFIG_PROD"

# 内存
maxmemory 2gb
maxmemory-policy allkeys-lru

# 持久化
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec

# 客户端
maxclients 10000
timeout 300
tcp-keepalive 60

# 慢查询
slowlog-log-slower-than 10000  # 10ms
slowlog-max-len 128

# 高级
hz 10
repl-backlog-size 1gb

五、服务器性能监控(Prometheus + Grafana)

核心指标

# prometheus.yml
- job_name: 'redis'
  static_configs:
    - targets: ['localhost:9121']  # redis_exporter

关键指标

指标说明告警阈值
redis_connected_clients连接数> 8000
redis_used_memory内存使用> 80%
redis_mem_fragmentation_ratio内存碎片率> 1.5
redis_instantaneous_ops_per_secQPS突增
redis_keyspace_hits_ratio命中率< 90%
redis_rejected_connections拒绝连接> 0

六、服务器安全加固

1. 密码 + 认证

requirepass xAI_2025_Secure_Redis!
redis-cli -a xAI_2025_Secure_Redis! PING

2. 禁用危险命令

rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command SHUTDOWN  "SHUTDOWN_PROD"
rename-command CONFIG   ""

3. 网络隔离

bind 10.0.0.10
protected-mode yes

4. TLS 加密(Redis 6.0+)

tls-port 6380
tls-cert-file /etc/redis/redis.crt
tls-key-file /etc/redis/redis.key
tls-ca-cert-file /etc/redis/ca.crt

七、服务器故障排查

1. 内存暴涨

# 排查大 key
redis-cli --bigkeys

# 内存诊断
redis-cli MEMORY DOCTOR

2. 响应延迟

# 慢查询
SLOWLOG GET 10

# 延迟诊断
LATENCY DOCTOR

3. 连接拒绝

INFO clients
# rejected_connections > 0

# 检查 maxclients
CONFIG GET maxclients

4. 主从不同步

INFO replication
# master_repl_offset vs slave_repl_offset

八、服务器运维脚本

1. 自动清理过期 key

#!/bin/bash
redis-cli --scan --pattern "tmp:*" | xargs -r redis-cli del

2. 内存预警脚本

#!/bin/bash
USED=$(redis-cli INFO memory | grep used_memory: | awk -F: '{print $2}' | tr -d '\r')
MAX=$(redis-cli CONFIG GET maxmemory | awk 'NR==2')
if [ $USED -gt $((MAX * 8 / 10)) ]; then
    echo "内存告警: $USED / $MAX"
fi

3. 备份脚本

#!/bin/bash
DATE=$(date +%Y%m%d)
cp /var/lib/redis/dump.rdb /backup/redis_$DATE.rdb
# 上传 OSS

九、一键速查表

# 服务器状态
INFO all
INFO memory
INFO stats

# 配置管理
CONFIG GET maxmemory
CONFIG SET maxmemory 4gb

# 慢查询
SLOWLOG GET 5
SLOWLOG LEN

# 内存
MEMORY USAGE key
MEMORY DOCTOR
redis-cli --bigkeys

# 客户端
CLIENT LIST | wc -l
CLIENT KILL 127.0.0.1:54321

# 关机
SHUTDOWN SAVE

十、生产级服务器架构

graph TD
    A[应用] --> B[Redis Proxy]
    B --> C[Sentinel HA]
    C --> D[Master]
    C --> E[Slave]
    C --> F[Slave]
    G[Backup] --> D
    H[Monitor] --> D
    H --> E
    H --> F

推荐组件:

  • Proxyredis-cluster-proxy / twemproxy
  • HARedis Sentinel
  • 监控Prometheus + Redis Exporter + Grafana
  • 备份RDB + AOF + 异地备份

十一、Redis 7.4 新特性(2025 最新)

特性说明
ZMPOP原子弹出多个成员
LCS最长公共子序列
EXPIRE ... NX|XX条件过期
CLIENT PAUSE WRITE暂停写
MEMORY STATS详细内存统计

完成!你已精通 Redis 服务器!

# 一行命令获取服务器健康状态
redis-cli INFO | grep -E "redis_version|uptime|connected_clients|used_memory|instantaneous_ops_per_sec"

下一步推荐

  1. Redis Sentinel 高可用
  2. Redis Cluster 集群搭建
  3. Redis 性能压测与调优

需要我送你

  • “生产级 redis.conf 模板(64GB 内存,10万 QPS)”
  • “Redis 监控告警全套配置(Grafana + Alertmanager)”
  • “Redis 故障演练手册(主从切换、内存爆)”

回复:conf模板 | 监控告警 | 故障演练 即可!

文章已创建 2481

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部