以下从基础配置、安全加固、性能优化、高可用性、监控维护五大维度总结CentOS环境下Redis配置的最佳实践,覆盖日常运维的核心需求。
安装与配置文件路径
sudo yum install epel-release && sudo yum install redis),便于后续通过包管理器升级;/etc/redis.conf(源码安装为/etc/redis/redis.conf),所有修改均基于此文件。守护进程与日志
daemonize yes,让Redis以守护进程方式在后台运行;logfile /var/log/redis/redis.log(需创建目录并赋权chown redis:redis /var/log/redis),日志级别设为notice(平衡信息量与可读性)。访问控制
bind指令限制Redis仅接受特定IP访问(如仅本地bind 127.0.0.1,或添加内网IPbind 127.0.0.1 192.168.1.100);requirepass注释并设置强密码(如requirepass YourStrongPassword@2025,包含大小写、数字和特殊字符);protected-mode(protected-mode no),但务必配合bind和防火墙使用。网络与命令安全
firewalld开放Redis端口(默认6379):sudo firewall-cmd --permanent --add-port=6379/tcp && sudo firewall-cmd --reload;rename-command重命名或禁用高危命令(如FLUSHDB→safe_flushdb、FLUSHALL→safe_flushall、CONFIG→safe_config),防止误操作或恶意破坏;openssl req -x509 -newkey rsa:4096 -keyout redis.key -out redis.crt -days 365),并在配置文件中添加ssl on、ssl_cert_file、ssl_key_file等参数。内存管理
maxmemory限制Redis使用内存(如maxmemory 4GB,建议预留20%-30%系统闲置内存);maxmemory-policy选择淘汰策略(推荐allkeys-lru,淘汰最近最少使用的键,适用于缓存场景;若需保留所有键则用volatile-lru)。持久化配置
save指令设置自动保存条件(如save 900 1(900秒内至少1次修改)、save 300 10(300秒内至少10次修改)),平衡数据安全性与性能;appendonly yes,并设置appendfsync everysec(每秒同步一次,兼顾性能与数据完整性;若需强一致则用always,但性能下降明显)。连接与命令优化
pipeline.set(key1, value1); pipeline.set(key2, value2)),降低网络往返次数;lazy-free机制(lazyfree-lazy-eviction yes、lazyfree-lazy-expire yes)异步释放内存;expire key 3600,1小时后自动删除),防止内存无限增长。主从复制
redis.conf中添加slaveof <主服务器IP> 6379、masterauth <主服务器密码>(若主服务器设置了密码);redis-cli info replication查看同步状态(role:slave、master_link_status:up表示同步成功)。Redis Sentinel
sentinel monitor mymaster 127.0.0.1 6379 2 # 监控主节点,2表示多数派同意才触发故障转移
sentinel down-after-milliseconds mymaster 5000 # 主节点超时时间(毫秒)
sentinel failover-timeout mymaster 60000 # 故障转移超时时间(毫秒)
tail -f /var/log/redis/sentinel.log),确认从服务器升级为主节点。监控指标
INFO命令(如redis-cli info memory、redis-cli info clients)查看内存、连接、持久化等状态;慢查询与日志
slowlog-log-slower-than 10000(执行时间超过10毫秒的命令视为慢查询)、slowlog-max-len 128(保留最近128条慢查询记录);SLOWLOG GET命令查看慢查询详情,优化高频慢查询(如避免KEYS *命令,改用SCAN)。定期维护
sudo cp -r /var/lib/redis /backup/redis_$(date +%F)),存储到异地或云存储;redis-cli keys "*" | xargs redis-cli del(谨慎使用,大数据量时会影响性能)或SCAN命令清理过期键,释放内存。以上实践覆盖了CentOS环境下Redis配置的核心要点,需根据实际业务场景(如数据量、并发量、可用性要求)调整参数,建议先在测试环境验证后再应用于生产。