十、Docker 复杂安装之3主3从redis集群配置

        假设公司现在1-2亿条数据需要缓存,单机单台设备肯定扛不住的,这个时候就需要分布式存储,用redis如果落地呢?本期就带着大家搭建一个3主3从redis集群。

1、拉取redis6.0.8镜像

涉及命令:docker pull redis:6.0.8

实例:

2、创建6个redis容器实例

涉及命令:

docker run -d --name redis-node-1 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381

docker run -d --name redis-node-2 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382;

docker run -d --name redis-node-3 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383;

docker run -d --name redis-node-4 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384;

docker run -d --name redis-node-5 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385;

docker run -d --name redis-node-6 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386;

Options说明:

选项说明
--net host使用宿主机的IP和端口,默认  这个和docker网络有关,后续我们会讲解,先记住
-v /data/redis/share/redis-node-x:/data容器卷,将redis数据存储在宿主机上
--cluster-enabled yes开启redis集群
--appendonly yes开启持久化

实例:

3、构建主从关系

进入任意一个redis容器节点,构建主从关系,由于我的宿主机IP为:192.168.13.61

涉及命令:

redis-cli --cluster create 192.168.13.61:6381 192.168.13.61:6382 192.168.13.61:6383 192.168.13.61:6384 192.168.13.61:6385 192.168.13.61:6386 --cluster-replicas 1

Options说明:

        --cluster-replicas 1 : 为每个master 创建 1 个  slave

实例:

4、查看节点状态

涉及命令:

#查看集群状态 redis默认端口为6379 因为我们改变了默认端口,所以需要手动指定
redis-cli -p 6381 cluster info

实例:进入任意节点,查看集群状态

 集群状态每个参数说明:

  • cluster_state:状态是ok节点是否能够接收查询。fail状态表示有哈希槽没有被绑定到任意一个节点或者节点可以提供服务但是带有fail标记,或者该节点无法连续到多数master节点
  • cluster_slots_assigned:与某个节点关联的槽数(不是未绑定的)。这个数字应该是16384,节点才能正常工作,这意味着每个散列槽应该映射到一个节点。
  • cluster_slots_ok:哈希槽状态不是Fail和PFail的数量
  • cluster_slots_pfail:哈希槽状态是PFAIL的数量。请注意,只要PFAIL状态不由FAIL故障检测算法提升,这些散列槽仍可正常工作。PFAIL仅意味着我们目前无法与节点通话,但可能只是一个暂时的错误。
  • cluster_slots_fail:哈希槽状态是FAIL的数量。如果此数字不为零,则该节点无法提供查询,除非在配置中cluster-require-full-coverage设置为no。
  • cluster_known_nodes:群集中已知节点的总数,包括处于握手(HANDSHAKE)状态还没有称为集群正式成员的节点
  • cluster_size:至少包含一个哈希槽而且能够提供服务的master节点数量
  • cluster_current_epoch:集群本地Current Epoch变量的值,这个值在节点故障转移期间创建的独特的自增版本号
  • cluster_my_epoch:我们正在与之交谈的Config Epoch节点。这是分配给此节点的当前配置版本。
  • cluster_stats_messages_sent:通过node-to-node二进制总线发送的消息数量
  • cluster_stats_messages_received:通过node-to-node二进制总线接收的消息数量

5、查看集群节点

进入任意一个节点,查询集群节点信息

涉及命令:

redis-cli -p 6381 cluster nodes

 6、数据存储

进入任意节点,存储数据

涉及命令:

redis-cli -p 6381 -c
#注意 因为我们是在集群状态下执行数据存储,必须加入-c 选项,用于redis集群通过key切换节点存储

7、检查每个节点的情况

进入任意节点,执行命令

涉及命令:

redis-cli --cluster check 192.168.13.61:6381

实例:

到此,我们的redis3主3从配置结束,但是适逢双十一,流量爆增时就需要自动扩容,双十一过后需要自动缩容,后续我们继续讲解redis扩容和缩容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈行动派

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值