1. Linux系统安装Redis的完整指南
Redis作为当前最流行的内存数据库之一,在缓存、消息队列、会话存储等场景中广泛应用。对于Linux用户而言,掌握Redis的安装配置是必备技能。本文将详细介绍在Linux系统上安装Redis的两种主流方式:通过源码编译安装和通过包管理器(yum/apt)安装,并针对不同发行版提供具体操作指南。
提示:无论选择哪种安装方式,建议先更新系统软件包。执行
sudo apt update(Debian/Ubuntu)或sudo yum update(CentOS/RHEL)可确保系统环境最新。
1.1 环境准备与前置检查
在开始安装前,需要确认系统基本信息:
# 查看系统版本 cat /etc/os-release # 查看CPU架构 uname -m # 检查gcc版本(编译安装需要) gcc --version对于编译安装方式,需确保系统已安装必要的构建工具:
# Debian/Ubuntu sudo apt install build-essential tcl # CentOS/RHEL sudo yum groupinstall "Development Tools" sudo yum install tcl2. 通过源码编译安装Redis(推荐生产环境使用)
2.1 下载与解压Redis源码
官方推荐从Redis官网获取最新稳定版源码:
# 下载指定版本(以7.2.4为例) wget https://download.redis.io/releases/redis-7.2.4.tar.gz # 校验文件完整性 sha256sum redis-7.2.4.tar.gz # 解压源码包 tar xzf redis-7.2.4.tar.gz cd redis-7.2.4注意:生产环境建议使用长期支持版本(偶数版本号),可通过
curl -s https://download.redis.io/redis-stable/00-RELEASENOTES | grep '^Redis'查看版本信息。
2.2 编译与安装过程详解
编译安装分为三个关键步骤:
# 1. 编译(使用-j参数加速,数字为CPU核心数) make -j4 # 2. 测试编译结果(可选但推荐) make test # 3. 安装到系统目录 sudo make install安装完成后,Redis主要文件会存放在以下位置:
- 可执行文件:/usr/local/bin/
- 配置文件:redis-7.2.4/redis.conf
- 数据目录:默认运行时生成
2.3 配置优化与系统集成
建议进行以下关键配置调整:
- 创建专用配置目录:
sudo mkdir /etc/redis sudo cp redis.conf /etc/redis/redis.conf- 修改配置文件关键参数:
# 启用守护进程模式 daemonize yes # 设置工作目录 dir /var/lib/redis # 绑定IP(生产环境需限制) bind 127.0.0.1 # 最大内存限制 maxmemory 2gb maxmemory-policy allkeys-lru- 创建systemd服务文件(/etc/systemd/system/redis.service):
[Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target- 创建专用用户和目录:
sudo adduser --system --group --no-create-home redis sudo mkdir /var/lib/redis sudo chown redis:redis /var/lib/redis sudo chmod 770 /var/lib/redis3. 通过包管理器安装Redis(适合快速部署)
3.1 Debian/Ubuntu系统安装
使用apt包管理器安装:
sudo apt update sudo apt install redis-server安装后自动完成以下配置:
- 服务已启动并启用开机自启
- 配置文件位于/etc/redis/redis.conf
- 日志文件位于/var/log/redis/redis-server.log
3.2 CentOS/RHEL系统安装
CentOS需先启用EPEL仓库:
sudo yum install epel-release sudo yum install redis关键操作命令:
# 启动服务 sudo systemctl start redis # 设置开机启动 sudo systemctl enable redis # 查看状态 sudo systemctl status redis3.3 包管理器安装的版本管理
查看安装版本:
redis-server --version升级Redis版本:
# Debian/Ubuntu sudo apt update sudo apt install --only-upgrade redis-server # CentOS sudo yum update redis4. Redis安装后的基本配置与验证
4.1 防火墙配置
如果需远程访问,需开放Redis端口(默认6379):
# UFW防火墙(Ubuntu) sudo ufw allow 6379 # firewalld(CentOS) sudo firewall-cmd --permanent --add-port=6379/tcp sudo firewall-cmd --reload4.2 安全加固建议
- 设置访问密码:
# 在配置文件中添加 requirepass yourstrongpassword- 禁用危险命令:
rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command CONFIG ""- 启用保护模式:
protected-mode yes4.3 服务管理常用命令
# 启动服务 sudo systemctl start redis # 停止服务 sudo systemctl stop redis # 重启服务 sudo systemctl restart redis # 查看状态 sudo systemctl status redis # 查看日志 journalctl -u redis -f4.4 基本功能验证
# 连接Redis redis-cli # 测试连通性 127.0.0.1:6379> ping # 设置测试键值 127.0.0.1:6379> set test "Hello Redis" 127.0.0.1:6379> get test # 查看信息 127.0.0.1:6379> info5. 常见问题与解决方案
5.1 编译安装问题排查
- 编译错误:缺少依赖
# 常见错误:jemalloc/jemalloc.h: No such file or directory make distclean make MALLOC=libc- 测试失败:需要更多内存
# 临时增加swap空间 sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile5.2 运行时报错处理
- 启动失败:地址已在使用
# 查找占用进程 sudo netstat -tulnp | grep 6379 # 或使用lsof sudo lsof -i :6379- 连接被拒绝:检查以下配置
# 确保bind未注释且包含127.0.0.1 bind 127.0.0.1 # 保护模式设为no或设置密码 protected-mode no5.3 性能优化建议
- 内存优化:
# 在配置文件中设置 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 activerehashing yes- 持久化配置:
# 根据需求选择RDB或AOF save 900 1 save 300 10 save 60 10000 appendonly yes appendfsync everysec- 连接数调整:
maxclients 10000 tcp-backlog 511 timeout 06. 多实例部署与集群配置
6.1 单机多实例部署
- 创建新实例目录:
sudo mkdir -p /etc/redis/instance2 sudo cp /etc/redis/redis.conf /etc/redis/instance2/redis.conf- 修改关键参数:
port 6380 pidfile /var/run/redis_6380.pid logfile "/var/log/redis/redis_6380.log" dir /var/lib/redis/instance2- 创建新的systemd服务文件:
[Unit] Description=Redis Instance 2 After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/instance2/redis.conf ExecStop=/usr/local/bin/redis-cli -p 6380 shutdown Restart=always [Install] WantedBy=multi-user.target6.2 主从复制配置
- 在主节点配置:
# 确保主节点可写 replica-read-only no- 在从节点配置:
replicaof <masterip> <masterport> masterauth <master-password> replica-serve-stale-data yes6.3 Redis集群搭建
- 准备至少6个节点(3主3从)
- 每个节点启用集群模式:
cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000- 使用redis-cli创建集群:
redis-cli --cluster create \ 127.0.0.1:6379 127.0.0.1:6380 \ 127.0.0.1:6381 127.0.0.1:6382 \ 127.0.0.1:6383 127.0.0.1:6384 \ --cluster-replicas 17. 维护与监控
7.1 日常维护命令
# 内存碎片整理 redis-cli memory purge # 手动持久化 redis-cli save redis-cli bgsave # AOF重写 redis-cli bgrewriteaof7.2 监控指标查看
# 基础监控 redis-cli info # 内存详情 redis-cli info memory # 持久化信息 redis-cli info persistence # 复制信息 redis-cli info replication7.3 备份与恢复策略
- RDB备份:
# 手动触发备份 redis-cli save # 或后台备份 redis-cli bgsave # 备份文件默认在dir配置的目录下- AOF备份:
# 确保AOF开启 appendonly yes # 定期执行重写优化 redis-cli bgrewriteaof- 恢复步骤:
# 关闭Redis redis-cli shutdown # 复制备份文件到数据目录 cp dump.rdb /var/lib/redis/ # 启动Redis systemctl start redis8. 版本升级与迁移
8.1 小版本升级
# 编译安装方式 make && sudo make install # 包管理方式 sudo apt upgrade redis-server # 或 sudo yum update redis8.2 大版本升级步骤
- 在新服务器安装新版本Redis
- 配置从旧实例复制数据:
# 在新实例执行 redis-cli --cluster import <host>:<port> --cluster-from <oldhost>:<oldport>- 验证数据一致性后切换流量
8.3 降级注意事项
- 仅支持RDB文件从高版本向低版本兼容
- AOF文件通常不兼容低版本
- 集群配置变更可能导致数据丢失
重要提示:任何升级/降级操作前,务必做好完整备份。建议先在测试环境验证迁移方案。