NoSQL 之 Redis 配置与优化
Redis 是高性能键值型 NoSQL 数据库,广泛用于缓存、消息队列、分布式锁、会话存储等场景。本文从安装配置、核心配置、性能优化、安全优化、持久化优化、内存优化、高可用7 个维度,提供企业级可直接落地的方案。
一、Redis 快速安装
bash
运行
安装依赖
yum install -y gcc gcc-c++ make
下载解压(推荐稳定版 6.2/7.0)
wget https://download.redis.io/releases/redis-6.2.14.tar.gz
tar -zxvf redis-6.2.14.tar.gz
cd redis-6.2.14
编译安装
make && make install
默认安装路径:/usr/local/bin
二、Redis 核心配置文件(redis.conf)
生产环境必须使用配置文件启动,禁止直接 redis-server 裸跑。
- 基础必改配置
ini
后台运行(守护进程)
daemonize yes
绑定监听IP(生产环境不要用 0.0.0.0,只绑定业务IP)
bind 127.0.0.1 192.168.1.100
端口
port 6379
PID 文件路径
pidfile /var/run/redis_6379.pid
日志文件(方便排查问题)
logfile "/var/log/redis/redis.log"
数据目录
dir /var/lib/redis
- 安全配置(重中之重)
ini
设置强密码(生产必须配置)
requirepass 你的强密码
禁止外网直接访问
bind 内网IP
关闭危险命令(防止误删)
rename-command CONFIG ""
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command KEYS ""
最大客户端连接数
maxclients 10000
- 内存配置
ini
最大使用内存(根据服务器配置,不要超过物理内存的50%)
maxmemory 8G
内存淘汰策略(缓存场景必配)
maxmemory-policy allkeys-lru
- 持久化配置
ini
RDB 快照(默认开启)
save 3600 1
save 300 100
save 60 10000
AOF 日志(生产推荐开启)
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
三、Redis 性能优化(核心)
- 内存优化
maxmemory:严格限制最大内存,避免 OOM 杀死进程
淘汰策略:
缓存场景:allkeys-lru(删除最近最少使用的键)
持久化存储:noeviction(不删除,直接报错)
键名设计:简短有意义,减少内存开销
避免大 key:string 控制在 10KB 内,hash/list/set 元素不超过 5000 个
- 网络优化
ini
关闭TCP延迟确认,降低延迟
tcp-nodelay yes
TCP 心跳
tcp-keepalive 300
系统内核优化(临时生效):
bash
运行
echo 512 > /proc/sys/net/core/somaxconn
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl -p
- CPU 优化
Redis 单线程,不占用多核,多核服务器可部署多实例
绑定 CPU 核心(减少上下文切换)
ini
server_cpulist 0-1
- 持久化优化
纯缓存业务:关闭 RDB + AOF,性能最高
必须持久化:
AOF + RDB 混合模式(Redis 4.0+ 默认支持)
appendfsync everysec(性能与安全平衡)
避开业务高峰期自动备份
四、安全优化
设置密码:requirepass
禁止外网访问:bind 内网IP + 防火墙限制
禁用危险命令:rename-command
低权限运行:不要用 root 运行 Redis
修改默认端口:不要用 6379
开启密码认证:连接必须验证
五、高可用方案(生产必备)
- 主从复制(读写分离)
ini
从库配置
replicaof 主库IP 主库端口
masterauth 主库密码
replica-read-only yes
- 哨兵模式(自动故障转移)
至少 3 个哨兵节点
主库宕机自动选举从库升级为主库
配置文件:sentinel.conf
- Redis Cluster(集群,分布式存储)
支持水平扩容
自动分片存储数据
适合大数据量、高并发场景
六、Redis 日常运维命令
bash
运行
启动
redis-server /etc/redis.conf
连接
redis-cli -h IP -p 端口 -a 密码
查看内存
info memory
查看配置
config get *
动态修改配置
config set maxmemory 8G
七、常见问题与解决方案
Redis 占满内存
配置 maxmemory + 淘汰策略
清理大 key、过期 key
Redis 变慢
关闭持久化
避免大 key、慢查询
开启 tcp-nodelay
数据丢失风险
开启 AOF
主从 + 哨兵
被攻击
必须设置密码
禁止外网访问
禁用危险命令
总结
配置核心:密码、内存限制、持久化、绑定 IP
优化核心:内存淘汰、禁止大 key、网络内核调优、关闭无用持久化
安全核心:密码、内网访问、禁用危险命令、低权限运行
高可用:主从 + 哨兵(中小型)、Cluster(大型