一  高可用介绍

redis的单机部署是非常方便的,但是存在很大的一个问题就是单点故障,一旦机器挂掉,所有相关的服务都受影响,所以生产环境一般都是搭的高可用架构,当然也有公司部署单机的,那是因为要么redis承担的任务本身没那么重要,挂了重启对系统也没多大影响,要么就是对系统本身的高可用要求没那么高,就算整个系统挂了重启也没啥大问题。

redis的高可用架构一般有这么几种:主从模式、哨兵模式、redis sharding 模式、redis cluster模式。本篇搭建的是最基础的主从模式。

二  搭建实战

1   linux服务器安装好docker,这里就不详细记录安装过程了,还不太了解docker的小伙伴可以自行百度。

2  启动docker服务

systemctl start docker

3  查看docker是否启动

systemctl status docker    如下图说明启动成功

docker快速搭建redis高可用架构实战---主从模式

 

 4  下载redis镜像

docker search redis //查看镜像  ,更详细版本可以到镜像仓库查看:https://hub.docker.com/_/redis

docker快速搭建redis高可用架构实战---主从模式

 docker pull redis //拉取镜像 ,不指定版本默认是最新版

 docker images | grep redis   //查看已下载的redis镜像

docker快速搭建redis高可用架构实战---主从模式

 

5  创建并启动三个容器

docker run -d --name redis0 -p 6379:6379 redis

docker run -d --name redis1 -p 6389:6379 redis

docker run -d --name redis2 -p 6399:6379 redis

6  查看已启动容器

docker ps   如图说明三台redis已经正常启动

docker快速搭建redis高可用架构实战---主从模式

 

 7 客户端链接并查看状态

redis-cli  -h 192.168.74.132 -p 6379

docker快速搭建redis高可用架构实战---主从模式

 redis-cli  -h 192.168.74.132 -p 6389

docker快速搭建redis高可用架构实战---主从模式

  redis-cli  -h 192.168.74.132 -p 6399

docker快速搭建redis高可用架构实战---主从模式

 可以看到,目前三台redis之间是没有任何关系的,各自都是master节点,都没有从节点

8  建立主从关系(这里把6379作为主,6389和6399作为从)

salaveof 192.168.74.132 6379

docker快速搭建redis高可用架构实战---主从模式

 docker快速搭建redis高可用架构实战---主从模式

 

9  查看主从关系

6379还是主,多了两个从

docker快速搭建redis高可用架构实战---主从模式

 6389和6399都成了从,主是6379

docker快速搭建redis高可用架构实战---主从模式

 docker快速搭建redis高可用架构实战---主从模式

 

 10  主从验证

插入数据之前都是空的

 docker快速搭建redis高可用架构实战---主从模式 docker快速搭建redis高可用架构实战---主从模式 docker快速搭建redis高可用架构实战---主从模式

 

现在往6379插入一条数据

set  k1 v1

docker快速搭建redis高可用架构实战---主从模式

 三台机器获取k1

docker快速搭建redis高可用架构实战---主从模式  docker快速搭建redis高可用架构实战---主从模式  docker快速搭建redis高可用架构实战---主从模式

 

三  优缺点

 

 1  优点:搭建起来是相当的简单,而且确实可以实现读写分离,主写从读,也可以提高整体性能

 2  缺点:一旦主机挂掉,整体对外就不能写了,相当于还是存在单点故障问题的;当从机比较多数据量又比较大的时候,主机都要完成复制工作,对性能是有影响的;只适合读多写少

四 主从模式变形

1 针对以上主从模式的缺点出现了一些变形,比如为了避免主机向所有其他从机都做数据同步降低性能,可采用‘薪火相传’模式,相当于分层复制了,主机只负责直接从机数据的复制,各个直接从机自己去复制自己的直接从机。

 这样,6399就成了6389的从机

 docker快速搭建redis高可用架构实战---主从模式

6379就只有6389一台从机了

 docker快速搭建redis高可用架构实战---主从模式

往6379插入数据

docker快速搭建redis高可用架构实战---主从模式

 看看效果 还是一样能实现主从复制

docker快速搭建redis高可用架构实战---主从模式  docker快速搭建redis高可用架构实战---主从模式  docker快速搭建redis高可用架构实战---主从模式

 

2  还有就是对于主机挂掉,整体不能对外提供写服务的问题,可以把从机直接升级为主机

停掉6379

docker快速搭建redis高可用架构实战---主从模式

 

再把6389升级为主机

  slaveof no one   可以看到6389成了主机,有一台从机

docker快速搭建redis高可用架构实战---主从模式

 

 往6389插入数据

docker快速搭建redis高可用架构实战---主从模式

 看效果

 docker快速搭建redis高可用架构实战---主从模式   docker快速搭建redis高可用架构实战---主从模式

 可以看出来一个很大的问题就是需要手动将从机切换成主机,这样的话是很难做到及时的。所以就有了后面的哨兵模式。

 

学无止境,让学习成为一种习惯。

本人水平有限,有不对的地方请指教,谢谢。

 

分类:

技术点:

相关文章: