服务器安装配置Redis的核心目标:高性能、低延迟、高可用的数据缓存与持久化服务。
在现代高并发架构中,Redis作为内存数据库,已成为缓存、会话管理、实时排行榜等场景的首选组件,本文基于生产环境实践,提供一套安全、稳定、可扩展的Redis安装与配置方案,适用于CentOS 7+/Ubuntu 20.04+主流Linux服务器。
安装前准备:环境与依赖确认(3步)
-
系统版本确认
- 执行
uname -r查看内核版本; - 推荐使用内核 ≥ 3.2 的64位Linux系统(避免内存分配器jemalloc兼容性问题)。
- 执行
-
安装基础依赖
# CentOS yum install -y gcc make tcl # Ubuntu apt update && apt install -y build-essential tcl
-
规划部署模式
- 单机版:适用于开发/测试环境;
- 主从+哨兵:中小规模生产环境;
- Redis Cluster:高并发、高可用生产集群(本文重点讲解单机安装,集群部署另文详解)。
源码编译安装:确保版本可控与性能优化(5步)
-
下载稳定版源码(推荐Redis 7.2 LTS)
wget https://download.redis.io/releases/redis-7.2.5.tar.gz tar xzf redis-7.2.5.tar.gz && cd redis-7.2.5
-
启用Jemalloc内存分配器(提升高并发下内存效率)
make MALLOC=Jemalloc
-
编译测试(避免潜在内存错误)
make test
✅ 关键点:若测试通过,说明系统内核与内存管理无兼容性风险。
-
安装至指定目录(避免污染系统路径)
make PREFIX=/usr/local/redis install
-
验证安装结果
/usr/local/redis/bin/redis-server --version # 输出:Redis server v=7.2.5 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64
核心配置:安全、性能、持久化三重保障(4大关键项)
-
基础安全加固
- 禁止公网直接访问:
bind 127.0.0.1(或内网IP); - 设置强密码:
requirepass 'YourStr0ngP@ssw0rd!'(长度≥16位,含大小写+数字+符号); - 关闭危险命令:
rename-command FLUSHALL ""、rename-command CONFIG ""。
- 禁止公网直接访问:
-
内存与连接优化
- 设置最大内存:
maxmemory 4gb(预留20%内存给系统); - 选择淘汰策略:
maxmemory-policy allkeys-lru(缓存场景推荐); - 调整连接数:
maxclients 10000(配合ulimit -n 65535)。
- 设置最大内存:
-
持久化策略(避免数据丢失)
- RDB快照:
save 900 1(15分钟1次,至少1次修改); - AOF日志:
appendonly yes+appendfsync everysec(兼顾性能与安全); - 禁止同时关闭RDB与AOF(生产环境必须开启至少一种)。
- RDB快照:
-
系统级调优(关键!)
- 禁用Transparent Huge Pages(THP):
echo never > /sys/kernel/mm/transparent_hugepage/enabled # 写入 /etc/rc.local 实现开机禁用
- 调整TCP backlog:
net.core.somaxconn = 65535(/etc/sysctl.conf); - 启用
tcp-backlog:tcp-backlog 511(Redis配置文件中)。
- 禁用Transparent Huge Pages(THP):
服务化部署:以systemd管理(3步)
-
创建服务文件:
vim /etc/systemd/system/redis.service ```如下: ```ini [Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/redis/bin/redis-cli -a 'YourStr0ngP@ssw0rd!' shutdown Restart=always [Install] WantedBy=multi-user.target
-
创建运行用户与目录:
useradd -r -s /sbin/nologin redis mkdir -p /var/lib/redis /var/log/redis /etc/redis chown -R redis:redis /var/lib/redis /var/log/redis /etc/redis
-
启动并验证:
systemctl daemon-reload systemctl enable redis systemctl start redis redis-cli -a 'YourStr0ngP@ssw0rd!' ping # 返回 PONG 即成功
监控与运维建议(3项必做)
-
基础监控项:
INFO server(版本、运行时间);INFO memory(内存使用、峰值);INFO clients(连接数、阻塞客户端);INFO persistence(RDB/AOF状态)。
-
告警阈值建议:
- 内存使用率 > 85%;
- 连接数 > 80% maxclients;
- AOF rewrite耗时 > 30秒。
-
定期维护:
- 每周备份RDB/AOF文件;
- 每月执行
BGSAVE+DEBUG SLEEP 0验证持久化完整性。
相关问答
Q1:服务器安装配置Redis时,为何推荐用Jemalloc而非默认的libc?
A:Jemalloc在高并发场景下内存碎片率更低(实测降低15%~30%),分配效率更高,且Redis官方从5.0起默认启用Jemalloc,兼容性与稳定性更优。
Q2:单机Redis如何避免因OOM导致服务崩溃?
A:必须配置maxmemory + 合理的maxmemory-policy(如allkeys-lru),同时监控系统内存,确保Redis进程不会触发Linux OOM Killer。
服务器安装配置Redis需兼顾安全、性能与可维护性,切忌直接使用默认配置上线。
您在部署中遇到过哪些典型问题?欢迎在评论区分享您的解决方案!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/175604.html