Ubuntu/CentOS 服务器安装 Redis 超全面指南(续集)
·
接上文(Ubuntu部分请移步主页查看)。内容很多很全面,按需求查看即可~
Ubuntu/CentOS 服务器安装 Redis 超全面指南
二、CentOS 系统安装 Redis
2.1 环境准备
本教程基于 CentOS 7/8/9 版本。首先更新系统:
# CentOS 7
sudo yum update -y
# CentOS 8/9
sudo dnf update -y
2.2 方法一:YUM/DNF 安装(推荐)
CentOS 7 安装:
# 安装 EPEL 源
sudo yum install epel-release -y
# 安装 Redis
sudo yum install redis -y
CentOS 8/9 安装:
# 直接安装
sudo dnf install redis -y
验证安装:
# 查看版本
redis-server --version
# 查看服务状态
sudo systemctl status redis
2.3 方法二:源码编译安装
步骤 1:安装编译工具
# CentOS 7
sudo yum groupinstall "Development Tools" -y
sudo yum install tcl wget -y
# CentOS 8/9
sudo dnf groupinstall "Development Tools" -y
sudo dnf install tcl wget -y
步骤 2:下载并编译
cd /tmp
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4
# 编译安装
make
make test
sudo make install
步骤 3:配置 Redis
# 创建目录
sudo mkdir -p /etc/redis
sudo mkdir -p /var/lib/redis
sudo mkdir -p /var/log/redis
# 复制配置文件
sudo cp redis.conf /etc/redis/redis.conf
# 创建用户
sudo useradd -r -s /sbin/nologin redis
# 设置权限
sudo chown -R redis:redis /var/lib/redis
sudo chown -R redis:redis /var/log/redis
步骤 4:创建 systemd 服务
sudo vim /etc/systemd/system/redis.service
写入:
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
Type=notify
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
重载配置:
sudo systemctl daemon-reload
2.4 CentOS 启动和管理 Redis
# 启动 Redis
sudo systemctl start redis
# 停止 Redis
sudo systemctl stop redis
# 重启 Redis
sudo systemctl restart redis
# 查看状态
sudo systemctl status redis
# 开机自启
sudo systemctl enable redis
# 取消自启
sudo systemctl disable redis
2.5 CentOS 配置文件说明
YUM/DNF 安装的文件位置:
- 配置文件:
/etc/redis.conf或/etc/redis/redis.conf - 日志文件:
/var/log/redis/redis.log - 数据目录:
/var/lib/redis - PID 文件:
/var/run/redis/redis.pid
2.6 CentOS 基础配置
编辑配置文件:
sudo vim /etc/redis.conf
# 或
sudo vim /etc/redis/redis.conf
配置项与 Ubuntu 相同,参考上文 1.7 节。主要修改:
bind 0.0.0.0
requirepass your_password
daemonize no
supervised systemd
dir /var/lib/redis
logfile /var/log/redis/redis.log
修改后重启:
sudo systemctl restart redis
2.7 CentOS 防火墙配置
CentOS 默认使用 firewalld:
# 开放 6379 端口
sudo firewall-cmd --permanent --add-port=6379/tcp
# 或添加 Redis 服务
sudo firewall-cmd --permanent --add-service=redis
# 重载防火墙
sudo firewall-cmd --reload
# 查看规则
sudo firewall-cmd --list-all
如果使用 iptables:
sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
sudo service iptables save
2.8 CentOS SELinux 配置
CentOS 默认启用 SELinux,可能会阻止 Redis 访问:
# 临时关闭(不推荐)
sudo setenforce 0
# 永久关闭(不推荐)
sudo vim /etc/selinux/config
# 修改:SELINUX=disabled
# 推荐:配置 SELinux 策略
sudo setsebool -P redis_enable_homedirs 1
sudo semanage port -a -t redis_port_t -p tcp 6379
2.9 CentOS 测试 Redis
测试方法与 Ubuntu 相同,参考 1.9 节:
redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set test "CentOS Redis"
OK
127.0.0.1:6379> get test
"CentOS Redis"
2.10 CentOS 常见问题
问题 1:SELinux 阻止访问
# 查看 SELinux 日志
sudo tail -f /var/log/audit/audit.log | grep redis
# 生成并应用策略
sudo grep redis /var/log/audit/audit.log | audit2allow -M redis_custom
sudo semodule -i redis_custom.pp
问题 2:服务启动失败
# 查看详细日志
sudo journalctl -u redis -xe
# 检查配置文件
redis-server /etc/redis.conf --test-memory 1024
三、Redis 性能优化建议
3.1 系统参数优化
编辑 /etc/sysctl.conf:
# 禁用透明大页
vm.overcommit_memory = 1
# TCP 连接优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
应用配置:
sudo sysctl -p
禁用透明大页:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
3.2 Redis 性能配置
# 最大客户端连接数
maxclients 10000
# 慢查询日志
slowlog-log-slower-than 10000
slowlog-max-len 128
# 数据库数量
databases 16
# TCP 连接
tcp-backlog 511
tcp-keepalive 300
3.3 监控和维护
# 查看实时统计
redis-cli --stat
# 查看慢查询
redis-cli slowlog get 10
# 查看客户端连接
redis-cli client list
# 内存分析
redis-cli --bigkeys
# 持续监控
redis-cli monitor
四、Redis 安全加固
4.1 访问控制
# 1. 设置强密码
requirepass "Complex_Password_123!@#"
# 2. 限制访问 IP
bind 127.0.0.1 192.168.1.0/24
# 3. 禁用危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG "CONFIG_abc123"
rename-command SHUTDOWN ""
rename-command KEYS ""
4.2 网络安全
# 1. 使用防火墙限制访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="6379" protocol="tcp" accept'
# 2. 使用 SSL/TLS(Redis 6.0+)
# 配置文件中添加:
tls-port 6380
tls-cert-file /path/to/redis.crt
tls-key-file /path/to/redis.key
tls-ca-cert-file /path/to/ca.crt
4.3 运行权限
# 确保以非 root 用户运行
ps aux | grep redis
# 检查文件权限
ls -la /etc/redis/redis.conf
# 应该是:-rw-r----- redis redis
五、备份和恢复
5.1 RDB 备份
# 手动触发备份
redis-cli BGSAVE
# 备份文件位置
ls -lh /var/lib/redis/dump.rdb
# 定时备份脚本
sudo vim /usr/local/bin/redis-backup.sh
#!/bin/bash
BACKUP_DIR="/backup/redis"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
redis-cli BGSAVE
sleep 5
cp /var/lib/redis/dump.rdb $BACKUP_DIR/dump_$DATE.rdb
# 保留最近 7 天的备份
find $BACKUP_DIR -name "dump_*.rdb" -mtime +7 -delete
# 添加执行权限
sudo chmod +x /usr/local/bin/redis-backup.sh
# 添加定时任务
sudo crontab -e
# 每天凌晨 2 点备份
0 2 * * * /usr/local/bin/redis-backup.sh
5.2 AOF 备份
# 备份 AOF 文件
cp /var/lib/redis/appendonly.aof /backup/redis/
# AOF 重写
redis-cli BGREWRITEAOF
5.3 数据恢复
# 1. 停止 Redis
sudo systemctl stop redis
# 2. 恢复数据文件
sudo cp /backup/redis/dump.rdb /var/lib/redis/
sudo chown redis:redis /var/lib/redis/dump.rdb
# 3. 启动 Redis
sudo systemctl start redis
# 4. 验证数据
redis-cli DBSIZE
六、总结
本文详细介绍了在 Ubuntu 和 CentOS 系统上安装、配置 Redis 的完整流程,包括:
- 安装方式:包管理器安装和源码编译两种方式
- 服务管理:使用 systemd 管理 Redis 服务
- 配置优化:持久化、内存管理、安全配置等
- 安全加固:访问控制、命令重命名、防火墙配置
- 备份恢复:RDB 和 AOF 两种备份方式
- 问题排查:常见问题的解决方案
无论是开发环境还是生产环境,按照本文的步骤都能快速搭建起稳定可靠的 Redis 服务。建议在生产环境中:
- 使用强密码和访问控制
- 配置持久化和定期备份
- 监控 Redis 性能指标
- 定期更新 Redis 版本
希望本文对你有所帮助!如有问题欢迎在评论区交流~~
参考资料:
更多推荐


所有评论(0)