在生产环境中部署Redis,首先选择合适的部署模式:单机、哨兵、主从复制或集群。根据业务需求,企业级实践推荐使用Redis Cluster实现高可用架构。部署步骤:1. 安装Redis 6.x以上版本,使用官方源码编译安装或yum/apt包管理器;2. 配置redis.conf,设置bind 0.0.0.0、protected-mode no、daemonize yes;3. 为高可用搭建哨兵模式,至少3个哨兵节点监控主从;4. 集群模式下,至少6个节点(3主3从),使用redis-cli --cluster create命令初始化。运维实践:开启AOF+RDB持久化,设置maxmemory-policy allkeys-lru;监控工具Prometheus+Grafana,告警CPU>80%、内存使用>90%;定期备份rdb/aof文件到S3,测试恢复流程。企业级高可用:结合Keepalived VIP漂移,容器化用Kubernetes StatefulSet部署,支持自动扩缩容。(来源:阿里云开发者社区)
部署实践
Redis生产部署最佳实践:服务器配置最低4核8G,SSD盘,内核参数优化vm.overcommit_memory=1,透明大页关闭。安装:wget http://download.redis.io/redis-stable.tar.gz,tar -zxvf后make && make install。配置:端口6379,timeout 0,tcp-keepalive 300,save 900 1等持久化策略。启动:redis-server /etc/redis.conf。高可用:主从复制配置slaveof主IP 6379,哨兵sentinel monitor mymaster 主IP 6379 2,选举超时15000ms。故障切换:哨兵自动检测主故障,选举从节点为主。运维:使用redis-trib.rb管理集群,设置cluster-node-timeout 15000。(来源:腾讯云开发者社区,原文部署手册)
企业级高可用架构
企业级Redis高可用架构实现:采用Redis Sentinel + 主从复制。步骤:部署3主3从,至少3哨兵。哨兵配置文件:sentinel monitor mymaster 192.168.1.10 6379 2,sentinel down-after-milliseconds mymaster 5000,sentinel failover-timeout mymaster 60000。客户端连接使用sentinel://方式动态发现主节点。结合Twemproxy或Codis分片代理,实现水平扩展。灾备:跨机房双活,GSLB负载均衡。监控:收集info、slowlog指标,Zabbix告警。容量规划:单实例内存不超过24G,QPS峰值监控,热点key隔离。(来源:华为云最佳实践文档)
运维经验分享
生产运维经验:1. OOM保护,设置maxmemory并lru策略,避免内存溢出杀进程;2. 大key优化,scan命令渐进式删除,避免阻塞;3. 管道化和事务批量操作降低RTT;4. 慢查询日志开启,latency doctor诊断;5. 集群槽迁移redis-cli --cluster rebalance;6. 安全:requirepass密码,rename-command禁止危险命令;7. 备份:crontab每日rdb dump,aof重写每周。故障案例:主从切换时从库delay,优化repl-diskless-sync yes。(来源:CSDN博客企业运维实践)
容器化部署
K8s上部署Redis高可用:使用Bitnami Redis Helm Chart,StatefulSet 3副本,主从自动,Sentinel集成。yaml配置:resources limits cpu 2 memory 4Gi,persistence storageClass ssd 20Gi。服务发现headless service,pvc绑定。监控sidecar exporter暴露metrics。自动 failover通过operator实现。(来源:Kubernetes官方Redis示例)
FAQ
Q: Redis单机内存满了怎么办?
A: 提前设置maxmemory和eviction策略,监控内存使用,热点数据分离到多实例。
Q: 哨兵模式如何保证脑裂?
A: quorum设置为哨兵节点数/2+1,主观下线+客观下线双重判断。
Q: 集群扩容怎么操作?
A: 添加新节点redis-cli --cluster add-node,rebalance槽,忘掉旧节点。
Q: AOF和RDB哪个更好?
A: 结合使用,RDB快照备份,AOF日志高可靠性,定期AOF rewrite。