源码编译安装最稳妥,需手动配置rdb/aof持久化(如save 300 10、appendonly yes、appendfsync everysec)、daemonize yes、正确设置dir/logfile/pidfile路径及权限,并指定配置文件启动。

直接编译安装最稳妥,redis-server 启动后默认不持久化,必须显式配置 RDB 或 AOF 才能防止重启丢数据。
编译安装比包管理器更可控
Ubuntu 的 apt install redis-server 会自动拉起服务、改写配置、绑定 127.0.0.1,还可能用 systemd 管理,调试和多实例部署反而麻烦。生产环境推荐源码编译:
- 先装依赖:
yum install -y gcc make tcl(CentOS)或apt install -y build-essential tcl(Ubuntu) - 下载解压后进目录,
make编译,再make PREFIX=/usr/local/redis install - 二进制全在
/usr/local/redis/bin/,配置文件自己复制一份,路径、端口、日志全由你定 - 别用默认的
redis.conf直接启动——它默认daemonize no,前台阻塞;也默认关闭AOF,save规则只留save 900 1,低频写入根本不会触发 RDB
RDB 配置要改三个关键项
RDB 是快照机制,靠 save 指令触发,但默认规则太保守。实际使用中至少调整以下三项:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
save 300 10:5 分钟内有 10 次写就落盘,比默认的 15 分钟 1 次更及时 -
dbfilename dump-6379.rdb:避免多个实例共用dump.rdb导致覆盖,建议按端口命名 -
dir /var/lib/redis/6379:显式指定目录,确保该路径存在且redis用户有读写权限;不要用相对路径或./ - 顺手打开
rdbcompression yes(默认开)和rdbchecksum yes(默认开),压缩省空间,校验防损坏
AOF 开启后必须配 appendfsync
appendonly yes 只是开关,真正影响数据安全的是刷盘策略 appendfsync:
-
appendfsync always:每次写都 fsync 到磁盘,最安全但性能差,一般不用 -
appendfsync everysec(默认):每秒刷一次,宕机最多丢 1 秒数据,平衡点 -
appendfsync no:交由 OS 决定,可能丢数分钟,仅测试用 - 配套设好
appendfilename appendonly-6379.aof和同dir路径,否则 AOF 文件会生成在启动目录下,容易混乱 - 如果同时开启 RDB 和 AOF,Redis 重启时**优先用 AOF 恢复**——因为 AOF 更完整,这点必须清楚
启动前检查 daemonize 和权限
很多人配完启动失败,卡在日志没输出、进程看不见,大概率是这两个坑:
-
daemonize yes后,pidfile和logfile路径必须可写,比如pidfile /var/run/redis_6379.pid要求/var/run对运行用户(如redis)可写;logfile /var/log/redis/6379.log要求/var/log/redis存在且可写 - 别用 root 启动再切用户——
redis-server不会自动降权;要么用sudo -u redis redis-server /path/to/6379.conf,要么在配置里设user redis(Redis 6.2+ 支持) - 启动命令必须带配置文件路径:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/6379.conf,光写redis-server会加载默认内置配置,你的修改全失效
持久化不是开了就万事大吉:RDB 文件得定期校验是否可读,AOF 文件重写后要确认大小合理,auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size 这两个阈值不调好,可能引发频繁重写或一直不重写。最易被忽略的是——dir 路径权限和 logfile 目录归属,它们导致服务静默失败,连错误日志都写不出来。










