文章目录

  • ​​一、集群部署​​
  • ​​二、高可用测试​​

一、集群部署

1、创建自定义网卡(Docker的虚拟网桥设备docker0,和自定义网络不连通,因此我们使用自定义网络的好处就是网络隔离,本文将 Redis集群放在专门的 Redis 网段中运行)

【Docker + Redis】Redis 集群部署与高可用_数据库


查看 docker 网卡列表,我们自定义的名为 redis 的网卡已创建成功

【Docker + Redis】Redis 集群部署与高可用_数据库_02

2、用 Shell 脚本批量生成 6 个 Redis 配置

【Docker + Redis】Redis 集群部署与高可用_结点_03

3、编写 Shell 脚本,启动 6 个 Redis 容器

【Docker + Redis】Redis 集群部署与高可用_redis_04


查看 6 个容器是否启动成功

【Docker + Redis】Redis 集群部署与高可用_自定义_05


4、进入一个 Redis,在其中创建集群

【Docker + Redis】Redis 集群部署与高可用_自定义_06


创建成功

【Docker + Redis】Redis 集群部署与高可用_redis_07


5、连接集群(加 -c 参数连接 Redis 集群,不然连的是单机)

【Docker + Redis】Redis 集群部署与高可用_数据库_08

二、高可用测试

我们插入一个 k-v(多插入几个值也能看出集群负载均衡的特点,k-v在集群中的存储分布较为均衡,另外,用 keys * 命令只能看出当前结点的所有k-v的键,而看不到的其他k-v在其他结点上,虽然看不到,但如果某k-v存在的话,当然是可以获取到)根据日志可以看出是加入到了 3 号 Redis 中,而根据上图,我们又可以知道 3 号 Redis 的从结点是 4 号,因此,我们将 3 号停止,看看还能不能从 4 号 Redis 中获取到我们的 k-v

【Docker + Redis】Redis 集群部署与高可用_docker_09


【Docker + Redis】Redis 集群部署与高可用_docker_10


停止 3 号 Redis 容器,获取之前存入 3 号 Redis 的 k-v,获取成功,日志提示是在其从结点获取到的结果,证明集群部署成功 ~

【Docker + Redis】Redis 集群部署与高可用_结点_11