一、实验目的
1)掌握Redis的基本用法;
2)掌握Redis 主从复制集群的构建;
3)掌握Redis 高可用集群的构建;
二、实验内容
1、在Docker中构建一个 1主2从的Redis主从复制集,并完成测试。
2、在Docker中构建一个Redis高可用集群, 并完成测试。
3、新建一个 spring boot 项目,在项目中连接操作一个单节点 Redis。
4、新建一个 spring boot 项目,在项目中连接操作一个 Redis 高可用集群。
说明:spring boot 项目只需实现一个简单 controller,能够实现增删改查即可。
三、实验要求
记录实验过程完成实验内容,在实验报告中给出相应的搭建过程、配置文件和项目源码。
建议重点记录和描述以下方面的内容:
- 归纳总结实验中涉及的知识点;
- 实验过程中出现了哪些问题、如何解决的;
四、实验操作:
1、在Docker中构建一个 1主2从的Redis主从复制集,并完成测试。
首先创建网络,便于容器间通信
然后创建一主两从的三个Redis容器
查看从节点信息进行验证
验证是否主从同步
2、在Docker中构建一个Redis高可用集群, 并完成测试。
要实现高可用集群,首先至少要创建三个哨兵Redis容器,方便投票选主
我们先在本地编写好配置文件:
port 26379
sentinel monitor mymaster 172.19.0.2 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
需要修改端口号,三个哨兵节点的端口号分别为,26379,26380,26381
然后挂载有配置文件的目录,启动三个容器:
可以从下图中看到三个哨兵节点也加入到了redis-net的网络中
接着我们进行测试,我们先停掉主节点来模拟主节点宕机
我们发现已经选举出了新的主节点,并从哨兵的返回中可以看到返回的ip和端口号,然后我们重启原来的主节点来查看器状态:
可以看到其已经变成了从节点
3、新建一个 spring boot 项目,在项目中连接操作一个单节点 Redis。
接着我们来集成到springboot项目中
我们启动项目后来进行接口测试:
4、新建一个 spring boot 项目,在项目中连接操作一个 Redis 高可用集群。
然后我们新建一个springboot项目来集成高可用性的redis集群:
然后我们执行build命令将程序封装为镜像:
接着构建一个容器:
然后我们调试接口:
然后我们停掉redis-slave2(第一次模拟宕机后选举出的主节点)来模拟宕机:
接着我们再次调用测试接口,来看看redis是否可用
五、实验难点:
解决方法参考博客:博客链接