Redis 安装指南
版本: Redis 8.0.x(Open Source,当前最新稳定大版本) | 平台: Linux(CentOS Stream 9)
默认端口: 6379(数据)/ 16379(集群总线)/ 26379(Sentinel)
部署模式: 单机 / 主从复制 / Sentinel 哨兵高可用 / Cluster 集群分片
一、概述与架构
Redis(Remote Dictionary Server)是全球最流行的内存数据结构存储系统,可用作数据库、缓存、消息代理和向量数据库。Redis 8.0 是一次重大版本升级,内置了 Redis Query Engine(搜索)、JSON、时序数据、概率数据结构等模块,无需额外安装。
1.1 部署模式对比
| 模式 | 节点数 | 高可用 | 数据分片 | 适用场景 |
|---|---|---|---|---|
| 单机 | 1 | ❌ | ❌ | 开发/测试/小型缓存 |
| 主从复制 | ≥2 | ❌(手动切换) | ❌ | 读扩展、数据备份 |
| Sentinel 哨兵 | ≥3 Sentinel + 主从 | ✅ 自动故障转移 | ❌ | 中小规模生产高可用 |
| Cluster 集群 | ≥6(3主3从) | ✅ 自动故障转移 | ✅ 16384 哈希槽 | 大规模生产/高吞吐 |
1.2 端口规划
| 端口 | 用途 | 说明 |
|---|---|---|
| 6379 | Redis 数据端口 | 客户端连接、数据读写 |
| 16379 | 集群总线端口 | 数据端口 + 10000,节点间通信/故障检测 |
| 26379 | Sentinel 端口 | 哨兵监控与客户端发现 |
二、环境准备(CentOS Stream 9)
2.1 硬件要求
| 环境 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| 开发/测试 | ≥1 核 | ≥512 MB | ≥10 GB |
| 生产(单节点) | ≥4 核 | ≥8 GB | ≥50 GB SSD |
Redis 是单线程模型(I/O 多路复用),主要瓶颈在内存和网络,而非 CPU。生产环境中,内存应预留 maxmemory 之上至少 30% 给 fork 操作(RDB/AOF 重写)和系统。
2.2 系统内核参数优化
# 关闭 THP(Transparent Huge Pages),Redis 强烈建议
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 写入开机自动执行
cat >> /etc/rc.local <<'EOF'
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
EOF
chmod +x /etc/rc.local
# 调整 overcommit_memory(允许 fork 时过度分配内存)
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
# 调整 somaxconn(TCP 连接队列)
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
# 应用
sysctl -p2.3 防火墙配置
sudo firewall-cmd --permanent --add-port=6379/tcp # Redis 数据
sudo firewall-cmd --permanent --add-port=16379/tcp # 集群总线
sudo firewall-cmd --permanent --add-port=26379/tcp # Sentinel
sudo firewall-cmd --reload三、安装前检查与卸载旧版本
安装新版 Redis 前,必须彻底检查并卸载系统中已有的 Redis,否则可能导致版本冲突、配置混乱、端口占用等问题。
3.1 检查是否已安装 Redis
# 检查 systemd 服务状态
systemctl status redis
systemctl status redis-server
# 检查进程
ps aux | grep redis-server
# 检查已安装的 RPM 包
rpm -qa | grep redis
# 检查二进制文件位置
which redis-server
which redis-cli
# 检查当前 Redis 版本
redis-server --version
redis-cli --version3.2 停止并禁用旧服务
# 停止 Redis 服务
sudo systemctl stop redis
sudo systemctl stop redis-server
# 禁用开机自启
sudo systemctl disable redis
sudo systemctl disable redis-server
# 确认已停止
systemctl status redis
ps aux | grep redis-server3.3 卸载旧版 Redis
方式一:RPM/DNF 包安装的情况
# 查看已安装的 Redis 包
rpm -qa | grep redis
# 卸载(保留配置文件)
sudo dnf remove redis
# 彻底卸载(如果上面不完全)
sudo rpm -e $(rpm -qa | grep redis)方式二:源码编译安装的情况
# 如果使用了 make install,二进制文件通常在 /usr/local/bin
sudo rm -f /usr/local/bin/redis-server
sudo rm -f /usr/local/bin/redis-cli
sudo rm -f /usr/local/bin/redis-sentinel
sudo rm -f /usr/local/bin/redis-benchmark
sudo rm -f /usr/local/bin/redis-check-aof
sudo rm -f /usr/local/bin/redis-check-rdb
# 或者在源码目录中执行
cd /opt/redis-stable # 源码目录
sudo make uninstall3.4 清理残留文件
# 备份旧数据(如需保留)
sudo cp -r /var/lib/redis /backup/redis-old-$(date +%Y%m%d)
sudo cp /etc/redis/redis.conf /backup/redis.conf.old.$(date +%Y%m%d)
# 清理配置文件
sudo rm -rf /etc/redis/
sudo rm -f /etc/redis.conf
# 清理数据目录
sudo rm -rf /var/lib/redis/
# 清理日志
sudo rm -rf /var/log/redis/
# 清理 PID 文件
sudo rm -rf /var/run/redis/
# 清理 systemd 服务文件
sudo rm -f /etc/systemd/system/redis.service
sudo rm -f /usr/lib/systemd/system/redis.service
sudo systemctl daemon-reload
# 清理旧仓库(如有)
sudo rm -f /etc/yum.repos.d/redis.repo
# 删除 redis 用户(可选,新安装会重建)
sudo userdel -r redis 2>/dev/null3.5 最终验证
# 确认无残留进程
ps aux | grep redis-server | grep -v grep
# 确认无残留包
rpm -qa | grep redis
# 确认无残留二进制
which redis-server 2>/dev/null && echo '未清理干净!' || echo '已清理干净'
which redis-cli 2>/dev/null && echo '未清理干净!' || echo '已清理干净'
# 确认端口未被占用
ss -tlnp | grep -E '6379|16379|26379'系统通过 RPM 包安装了旧版 Redis,运行在非标准端口 16379(/usr/bin/redis-server 0.0.0.0:16379),已运行超过 7 个月。请按上述步骤先完成卸载,再进行新版安装。
四、安装方式一:RPM 官方仓库(推荐)
4.1 添加 Redis 官方仓库
# 创建仓库文件
cat > /etc/yum.repos.d/redis.repo <<'EOF'
[Redis]
name=Redis
baseurl=http://packages.redis.io/rpm/rockylinux9
enabled=1
gpgcheck=1
EOF
# 导入 GPG Key
curl -fsSL https://packages.redis.io/gpg > /tmp/redis.key
sudo rpm --import /tmp/redis.key
# 安装 Redis
sudo yum install -y redis4.2 启动与开机自启
sudo systemctl enable redis
sudo systemctl start redis
sudo systemctl status redis
# 验证
redis-cli ping
# 应返回: PONG4.3 配置文件位置
- 主配置文件:
/etc/redis/redis.conf(或/etc/redis.conf) - 数据目录:
/var/lib/redis/ - 日志文件:
/var/log/redis/redis.log - PID 文件:
/var/run/redis/redis.pid
五、安装方式二:源码编译
适用于需要自定义编译选项、启用 TLS 或使用最新版本的场景。
5.1 安装编译依赖
sudo dnf install -y gcc make wget5.2 下载与编译
cd /opt
wget https://download.redis.io/redis-stable.tar.gz
tar -xzf redis-stable.tar.gz
cd redis-stable
# 标准编译
make
# 如需 TLS 支持(需先安装 openssl-devel)
# sudo dnf install -y openssl-devel
# make BUILD_TLS=yes
# 安装到 /usr/local/bin
sudo make install5.3 编译产物
| 二进制文件 | 说明 |
|---|---|
redis-server | Redis 服务端 |
redis-cli | 命令行客户端 |
redis-sentinel | Sentinel 哨兵(redis-server 的符号链接) |
redis-benchmark | 性能基准测试工具 |
redis-check-aof | AOF 文件检查/修复工具 |
redis-check-rdb | RDB 文件检查工具 |
5.4 配置为系统服务
# 创建运行用户
sudo useradd -r -s /sbin/nologin redis
# 创建目录
sudo mkdir -p /etc/redis /var/lib/redis /var/log/redis
sudo chown redis:redis /var/lib/redis /var/log/redis
# 复制配置文件
sudo cp /opt/redis-stable/redis.conf /etc/redis/redis.conf
# 修改关键配置
sudo sed -i 's/^daemonize no/daemonize yes/' /etc/redis/redis.conf
sudo sed -i 's|^dir ./|dir /var/lib/redis|' /etc/redis/redis.conf
sudo sed -i 's|^logfile ""|logfile /var/log/redis/redis.log|' /etc/redis/redis.conf创建 /etc/systemd/system/redis.service:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable redis
sudo systemctl start redis六、Docker 部署
6.1 快速启动
docker run -d \
--name redis \
-p 6379:6379 \
-v redis-data:/data \
redis:8 \
redis-server --requirepass "YourStrongPassword" --appendonly yes6.2 Docker Compose(带持久化与自定义配置)
# docker-compose-redis.yml
version: '3.8'
services:
redis:
image: redis:8
container_name: redis-server
restart: always
ports:
- "6379:6379"
volumes:
- redis-data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
sysctls:
net.core.somaxconn: 65535
deploy:
resources:
limits:
memory: 2g
volumes:
redis-data:docker compose -f docker-compose-redis.yml up -d
# 连接测试
docker exec -it redis-server redis-cli -a "YourStrongPassword" ping七、核心配置详解
- RPM 安装:
/etc/redis/redis.conf(或/etc/redis.conf) - 源码编译安装:
/etc/redis/redis.conf(需从源码目录手动复制,见第五节 5.4) - Docker:挂载自定义配置到容器内
/usr/local/etc/redis/redis.conf - Redis 8 完整版配置(含 Query Engine/JSON/TimeSeries 模块):
redis-full.conf(同目录)
7.1 redis.conf 生产配置模板
Redis 8 引入了双配置文件体系:redis.conf(纯 Redis 服务端)和 redis-full.conf(含所有内置模块)。若需使用 Query Engine / JSON / TimeSeries 等功能,请使用 redis-full.conf。(注意:下属配置使用的时候不建议行尾注释)
# ==========================================
# Redis 8.0 生产环境配置模板
# ==========================================
# ---------- 网络 ----------
bind 127.0.0.1 -::1 # 仅监听本地,生产需改为内网IP(允许全部就改为 bind 0.0.0.0)
# bind 192.168.1.100 127.0.0.1
protected-mode yes # 保护模式
port 6379
tcp-backlog 511
timeout 300 # 客户端空闲超时(秒),0=不超时
tcp-keepalive 300
# ---------- 通用 ----------
daemonize yes
pidfile /var/run/redis/redis-server.pid
loglevel notice
logfile /var/log/redis/redis-server.log
databases 16
always-show-logo no
# ---------- 安全/认证 ----------
requirepass YourStrongRedisPassword2025!
# ACL 用户(Redis 6+ 支持)
# user appuser on >AppPassword ~app:* &* +@all -@admin
# ---------- 内存管理 ----------
maxmemory-clients 4gb
maxmemory-policy allkeys-lru
# 其他策略: volatile-lru, allkeys-random, volatile-ttl, noeviction
# ---------- RDB 持久化 ----------
save 3600 1 # 3600秒内至少1个key变更则快照(选择一个)
save 300 100 # 300秒内至少100个key变更(选择一个)
save 60 10000 # 60秒内至少10000个key变更(选择一个)
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis
# ---------- AOF 持久化 ----------
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec # always / everysec / no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes # 混合持久化(AOF文件包含RDB前导)
# ---------- 慢日志 ----------
slowlog-log-slower-than 10000 # 10ms
slowlog-max-len 128
# ---------- 客户端 ----------
maxclients 10000
# ---------- 危险命令重命名/禁用 ----------
# rename-command FLUSHDB ""
# rename-command FLUSHALL ""
# rename-command KEYS ""
# rename-command CONFIG "CONFIG_b83a2de"7.2 持久化策略选择
| 策略 | 数据安全 | 性能影响 | 恢复速度 | 适用场景 |
|---|---|---|---|---|
| RDB Only | 可能丢失数分钟数据 | 低(后台 fork) | 快 | 纯缓存、可容忍少量丢失 |
| AOF Only | 最多丢失 1 秒 | 中(fsync 开销) | 慢(日志回放) | 数据安全要求高 |
| RDB + AOF(推荐) | 最多丢失 1 秒 | 中 | 快(RDB 前导 + 增量 AOF) | 生产环境首选 |
| 无持久化 | 全部丢失 | 最低 | — | 纯缓存、可随时重建 |
aof-use-rdb-preamble yes(Redis 4.0+ 默认开启):AOF 文件以 RDB 快照开头 + 增量 AOF 追加。兼具 RDB 的快速恢复和 AOF 的数据安全性,生产环境强烈推荐。
八、主从复制
编辑从节点的 /etc/redis/redis.conf,在文件末尾追加以下复制相关配置。
8.1 配置从节点
在从节点的 /etc/redis/redis.conf 中添加:
# 指向主节点
replicaof 192.168.1.11 6379
# 主节点密码
masterauth YourStrongRedisPassword2025!
# 从节点只读(默认)
replica-read-only yes8.2 验证复制状态
# 在主节点查看
redis-cli -a <password> INFO replication
# 应显示 role:master, connected_slaves:N
# 在从节点查看
redis-cli -a <password> INFO replication
# 应显示 role:slave, master_link_status:up九、Sentinel 哨兵高可用
/etc/redis/sentinel.conf(需手动创建)。每台 Sentinel 节点各一份。
Redis Sentinel 提供监控、通知、自动故障转移和服务发现。适用于不需要数据分片、但需要高可用的场景。至少部署 3 个 Sentinel 节点,且分布在不同的服务器/可用区。
9.1 架构示例
+----+
| M1 | (Master)
| S1 | (Sentinel)
+----+
|
+----+ | +----+
| R2 |----+----| R3 | (Replicas)
| S2 | | S3 | (Sentinels)
+----+ +----+
Quorum = 29.2 sentinel.conf 配置
# /etc/redis/sentinel.conf
port 26379
daemonize yes
pidfile /var/run/redis/sentinel.pid
logfile /var/log/redis/sentinel.log
dir /var/lib/redis
# 监控主节点,quorum=2 表示至少2个Sentinel同意才执行故障转移
sentinel monitor mymaster 192.168.1.11 6379 2
# 主节点密码
sentinel auth-pass mymaster YourStrongRedisPassword2025!
# 30秒无响应视为主观下线
sentinel down-after-milliseconds mymaster 30000
# 故障转移超时
sentinel failover-timeout mymaster 180000
# 同时同步的从节点数(降低为1减少同步压力)
sentinel parallel-syncs mymaster 19.3 启动 Sentinel
# 方式一
redis-sentinel /etc/redis/sentinel.conf
# 方式二
redis-server /etc/redis/sentinel.conf --sentinel
# 查看状态
redis-cli -p 26379 SENTINEL masters
redis-cli -p 26379 SENTINEL replicas mymaster9.4 客户端连接(Spring Boot 示例)
spring:
data:
redis:
sentinel:
master: mymaster
nodes:
- 192.168.1.11:26379
- 192.168.1.12:26379
- 192.168.1.13:26379
password: YourStrongRedisPassword2025!9.5 防止脑裂
在主节点 /etc/redis/redis.conf 中追加配置:
# 至少1个从节点确认写入,延迟不超过10秒
min-replicas-to-write 1
min-replicas-max-lag 10十、Redis Cluster 集群
每个集群节点需独立的配置文件,建议按端口命名:/etc/redis/redis-7000.conf、/etc/redis/redis-7001.conf …… 每份配置的 port、cluster-config-file、dir 必须唯一。
Redis Cluster 将 16384 个哈希槽分布在多个主节点上,实现自动数据分片 + 高可用。最小部署:3 主 3 从共 6 个节点。
10.1 节点配置
为每个节点准备 redis.conf(以端口 7000-7005 为例):
port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
dir /var/lib/redis/7000
bind 0.0.0.0
protected-mode no
requirepass YourClusterPassword
masterauth YourClusterPassword10.2 创建集群
# 创建目录并启动所有6个实例
for port in 7000 7001 7002 7003 7004 7005; do
mkdir -p /var/lib/redis/$port
redis-server /etc/redis/redis-$port.conf
done
# 使用 redis-cli 创建集群(3主3从)
redis-cli --cluster create \
192.168.1.11:7000 192.168.1.11:7001 \
192.168.1.12:7002 192.168.1.12:7003 \
192.168.1.13:7004 192.168.1.13:7005 \
--cluster-replicas 1 \
-a YourClusterPassword
# 确认输出 [OK] All 16384 slots covered10.3 集群操作
# 连接集群(-c 启用集群模式重定向)
redis-cli -c -p 7000 -a YourClusterPassword
# 查看集群状态
redis-cli -c -p 7000 -a YourClusterPassword CLUSTER INFO
# 查看节点信息
redis-cli -c -p 7000 -a YourClusterPassword CLUSTER NODES
# 重新分片
redis-cli --cluster reshard 192.168.1.11:7000 -a YourClusterPassword
# 添加新节点
redis-cli --cluster add-node <new-ip>:<port> <existing-ip>:<port> -a YourClusterPassword10.4 Docker 注意事项
Redis Cluster 不支持 NAT / 端口映射环境。Docker 中必须使用 --net=host 模式:
docker run -d --net=host --name redis-7000 \
-v /var/lib/redis/7000:/data \
redis:8 redis-server /data/redis.conf十一、安全加固
以下安全配置均修改对应节点的 /etc/redis/redis.conf。ACL 用户权限单独存放在 /etc/redis/users.acl(需在 redis.conf 中通过 aclfile 指定)。TLS 证书文件建议存放在 /etc/redis/tls/ 目录下。
11.1 核心安全配置
# 1. 绑定特定接口(切勿绑定 0.0.0.0 到公网)
bind 192.168.1.100 127.0.0.1
# 2. 保护模式(默认开启,无密码时阻止外部连接)
protected-mode yes
# 3. 认证密码
requirepass YourStrongRedisPassword2025!
# 4. 禁用/重命名危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command KEYS ""
rename-command DEBUG ""11.2 ACL 访问控制列表(Redis 6+)
Redis ACL 提供比 requirepass 更细粒度的权限控制:
# 创建应用用户:只能操作 app: 前缀的 key,禁止管理命令
redis-cli ACL SETUSER appuser on >AppPassword ~app:* &* +@all -@admin -@dangerous
# 创建只读用户
redis-cli ACL SETUSER readonly on >ReadOnlyPass ~* &* +@read -@write -@admin
# 查看所有用户
redis-cli ACL LIST
# 持久化 ACL 到文件
redis-cli ACL SAVE在 redis.conf 中指定 ACL 文件:
aclfile /etc/redis/users.acl11.3 TLS 加密
# 需编译时启用 BUILD_TLS=yes
tls-port 6380
tls-cert-file /etc/redis/tls/redis.crt
tls-key-file /etc/redis/tls/redis.key
tls-ca-cert-file /etc/redis/tls/ca.crt
tls-auth-clients optional十二、生产环境优化
以下优化项均修改 /etc/redis/redis.conf。部分参数支持通过 redis-cli CONFIG SET <param> <value> 在线热修改,修改后执行 redis-cli CONFIG REWRITE 持久化到配置文件。
12.1 内存优化策略
| 配置项 | 推荐值 | 说明 |
|---|---|---|
maxmemory | 物理内存的 60-70% | 预留给 fork、OS 缓冲、连接等 |
maxmemory-policy | allkeys-lru(缓存场景) | 或 noeviction(数据库场景,写满报错) |
activedefrag | yes | Redis 4+ 在线内存碎片整理 |
lazyfree-lazy-eviction | yes | 异步释放被淘汰的 key |
lazyfree-lazy-expire | yes | 异步释放过期 key |
12.2 监控指标
# 查看关键信息
redis-cli INFO memory # 内存使用
redis-cli INFO stats # 命中率、命令统计
redis-cli INFO replication # 复制状态
redis-cli INFO persistence # 持久化状态
redis-cli INFO clients # 客户端连接
# 慢查询日志
redis-cli SLOWLOG GET 20
# 实时监控命令
redis-cli MONITOR # 注意:生产慎用,性能开销大
# 延迟诊断
redis-cli --latency
redis-cli --latency-history
redis-cli --intrinsic-latency 1012.3 Prometheus 监控
使用 redis_exporter 采集指标:
# 启动 exporter
./redis_exporter \
-redis.addr redis://127.0.0.1:6379 \
-redis.password "YourPassword"Prometheus 配置:
scrape_configs:
- job_name: 'redis'
static_configs:
- targets: ['192.168.1.11:9121']Grafana Dashboard 推荐:Dashboard ID 763(Redis Dashboard for Prometheus)
12.4 备份策略
# 手动触发 RDB 快照(后台执行)
redis-cli -a <password> BGSAVE
# 定时备份脚本(crontab)
# 每小时备份 RDB 文件
0 * * * * cp /var/lib/redis/dump.rdb /backup/redis/dump-$(date +\%Y\%m\%d\%H).rdb
# 每天异地备份
0 2 * * * rsync -az /backup/redis/ backup-server:/remote/redis/RDB 文件可在 Redis 运行时安全复制(写时复制语义),适合直接用 cp 或 rsync 备份。
十三、常见问题与排查
13.1 启动报 WARNING:overcommit_memory
现象: WARNING overcommit_memory is set to 0!
解决: echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && sysctl -p
13.2 启动报 WARNING:THP
现象: WARNING you have Transparent Huge Pages (THP) support enabled
解决: 参照第二节 2.2 关闭 THP
13.3 连接被拒绝
现象: DENIED Redis is running in protected mode
排查步骤:
- 检查
bind是否包含客户端所在网段的 IP - 确认
protected-mode与requirepass配置正确 - 检查防火墙是否开放 6379 端口
13.4 内存使用超出 maxmemory
现象: OOM command not allowed when used memory > maxmemory
排查步骤:
redis-cli INFO memory查看used_memory_human和maxmemory_human- 检查
maxmemory-policy是否为noeviction(改为allkeys-lru可自动淘汰) - 排查大 key:
redis-cli --bigkeys - 考虑扩容内存或迁移到 Cluster 分片
13.5 RDB fork 延迟
现象: 大数据集时 BGSAVE 或 BGREWRITEAOF 导致短暂延迟
优化:
- 确保
vm.overcommit_memory = 1 - 关闭 THP
- 使用 SSD 磁盘
- 控制单实例数据量(建议单实例不超过 25 GB)
13.6 Cluster 节点无法加入
现象: CLUSTERDOWN The cluster is down
排查步骤:
- 确认所有节点的集群总线端口(数据端口+10000)已开放
- 检查
cluster-config-file是否冲突(每个节点必须唯一) redis-cli CLUSTER INFO查看cluster_slots_ok是否为 16384redis-cli CLUSTER NODES检查节点状态
十四、快速参考
常用命令速查
| 操作 | 命令 |
|---|---|
| 启动服务 | redis-server /etc/redis/redis.conf |
| 连接 CLI | redis-cli -h <host> -p <port> -a <password> |
| 连接集群 | redis-cli -c -p 7000 -a <password> |
| 查看全部信息 | redis-cli INFO |
| 触发 RDB 快照 | redis-cli BGSAVE |
| 触发 AOF 重写 | redis-cli BGREWRITEAOF |
| 慢查询日志 | redis-cli SLOWLOG GET 20 |
| 扫描大 Key | redis-cli --bigkeys |
| 延迟测试 | redis-cli --latency |
| 基准测试 | redis-benchmark -q -n 100000 -a <password> |
| 在线修改配置 | redis-cli CONFIG SET <param> <value> |
| 持久化配置变更 | redis-cli CONFIG REWRITE |
| 优雅关闭 | redis-cli SHUTDOWN SAVE |
关键文件路径
| 文件/目录 | 说明 |
|---|---|
/etc/redis/redis.conf | 主配置文件 |
/etc/redis/sentinel.conf | Sentinel 配置文件 |
/etc/redis/users.acl | ACL 用户权限文件 |
/var/lib/redis/dump.rdb | RDB 快照文件 |
/var/lib/redis/appendonlydir/ | AOF 文件目录(Redis 7+) |
/var/log/redis/redis.log | Redis 日志 |
/var/log/redis/sentinel.log | Sentinel 日志 |