如今业务系统对于缓存redis的依赖似乎是必不可少的 , 我们可以在各种各样的系统中看到Redis的身影 。考虑到系统运行的稳定性 , Redis的应用和MySQL数据库一样需要做到高可用部署 。
一、Redis 的多种高可用方案常见的Redis的高可用方案有以下几种:
- Redis Replication(主从复制):Redis的主从复制可以实现数据的备份和读写分离 。通过配置主节点和从节点,主节点将数据异步复制到从节点上 。当主节点发生故障时 , 一个从节点可以被提升为新的主节点 , 实现故障转移 。主从复制适用于对读操作较多、对可用性要求较高的场景 。
- Redis Sentinel(哨兵模式):哨兵模式是Redis官方推荐的实现高可用的方案之一 。通过运行一个或多个Sentinel进程 , 监控Redis主节点的状态 。当主节点故障时 , Sentinel会自动进行故障转移,将其中一个从节点提升为新的主节点 。哨兵还可以监控从节点并进行故障恢复 。哨兵模式适用于对高可用性要求不是特别高的场景 。
- Redis Cluster(集群模式):Redis Cluster是Redis官方提供的高可用和分布式解决方案 。通过将多个Redis实例组成一个集群,Redis Cluster提供了自动的数据分片和高可用性 。数据被分配到不同的节点上,并使用Gossip协议进行节点之间的通信 。当有节点发生故障时,Redis Cluster可以自动将数据迁移到其他正常的节点上 。Redis Cluster适用于对可用性和扩展性要求较高的场景 。集群模式只能存储在db0 。
- 第三方中间件/解决方案:除了Redis官方提供的高可用方案,还有一些第三方中间件或解决方案可以用于实现Redis的高可用 , 如Codis、Twemproxy等 。这些中间件提供了更多的功能和扩展性,如代理、负载均衡、故障恢复等 。
二、使用Docker Compose安装Redis并配置哨兵模式(Redis Sentinel)1. 环境准备 集群的架构一般服务器为奇数台,所以 , 如果是采用集群模式 , 那么至少准备3台linux服务器,受生产环境所限 , 我们只有两台Linux服务器,但是我们可以使用Docker搭建多个Redis服务(Redis主服务1、Redis从服务2、Redis从服务3):
- 192.168.0.210 (Redis主服务1、Redis从服务2)
- 192.168.0.195 (Redis从服务3)
- 准备Redis存储目录,在两台主从服务器上分别执行一下命令
在192.168.0.210服务器上执行Redis主服务1所需目录及权限命令
mkdir -p /opt/contAIner/redis/master/data /opt/container/redis/master/conf /opt/container/redis/master/logs /opt/container/redis/sentinel/data /opt/container/redis/sentinel/conf /opt/container/redis/sentinel/logschmod -R 777 /opt/container/redis/master/data /opt/container/redis/master/conf /opt/container/redis/master/logs /opt/container/redis/sentinel/data /opt/container/redis/sentinel/conf /opt/container/redis/sentinel/logs
在192.168.0.210服务器上执行Redis从服务2所需目录及权限命令mkdir -p /opt/container/redis/slave1/data /opt/container/redis/slave1/conf /opt/container/redis/slave1/logs /opt/container/redis/sentinel1/data /opt/container/redis/sentinel1/conf /opt/container/redis/sentinel1/logschmod -R 777 /opt/container/redis/slave1/data /opt/container/redis/slave1/conf /opt/container/redis/slave1/logs /opt/container/redis/sentinel1/data /opt/container/redis/sentinel1/conf /opt/container/redis/sentinel1/logs
在192.168.0.195服务器上执行Redis从服务3所需目录及权限命令mkdir -p /opt/container/redis/slave2/data /opt/container/redis/slave2/conf /opt/container/redis/slave2/logs /opt/container/redis/sentinel2/data /opt/container/redis/sentinel2/conf /opt/container/redis/sentinel2/logschmod -R 777 /opt/container/redis/slave2/data /opt/container/redis/slave2/conf /opt/container/redis/slave2/logs /opt/container/redis/sentinel2/data /opt/container/redis/sentinel2/conf /opt/container/redis/sentinel2/logs
/opt/container/redis/ ** /data 用于存放Redis数据文件/opt/container/redis/ ** /conf 用于存放Redis配置文件
/opt/container/redis/ ** /logs 用于存放Redis日志文件
/opt/container/sentinel/ ** /data 用于存放Redis哨兵数据文件
/opt/container/sentinel/ ** /conf 用于存放Redis哨兵配置文件
/opt/container/sentinel/ ** /logs 用于存放Redis哨兵日志文件
推荐阅读
- 如何使用万用表,佳诚万用表的使用方法
- vivo z5x手机参数和使用情况怎么样
- 小黄车怎么使用 共享单车小黄车怎么使用
- ipad双屏幕怎么打开,苹果ipad分屏功能怎么使用
- 和平精英物资怎么使用,和平精英物资币是干什么的
- 84消毒液使用注意事项手册 84消毒液的使用注意事项
- 电动车电池使用一年不到就坏的原因已找到,改正后电池用3年不坏
- 要怎么样正确使用步道乐跑,如何快速刷完步道乐跑
- 空调的按键怎么使用,海信空调辅热什么意思
- 真皮皮包如何保养最好 真皮皮包如何保养