redis集群

一、集群

Redis在3.0后开始支持Cluster(模式)模式,目前redis的集群支持节点的自动发现,支持slave-master选举和容错,支持在线分片(sharding shard )等特性

二、集群架构图

三、细节

  • 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
  • 节点的fail是通过集群中超过半数的节点检测失效时才生效.
  • 客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
  • redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

四、集群搭建

判断一个是集群中的节点是否可用,是集群中的所用主节点选举过程,如果半数以上的节点认为当前节点挂掉,那么当前节点就是挂掉了,所以搭建redis集群时建议节点数最好为奇数,**搭建集群至少需要三个主节点,三个从节点,至少需要6个节点。

1、准备安装环境

yum install -y ruby rubygems

2、创建7个目录

3、每个目录复制一份redis.conf配置文件

4、修改不同目录配置文件

  • port 7000 ..... //修改端口
  • bind 127.0.0.1 -::1 //开启远程连接

  • protected-mode no
  • daemonize yes //开启守护进程
  • dbfilename dump-7000.rdb //每台机器的文件不能一样
  • cluster-enabled  yes //开启集群模式
  • cluster-config-file  nodes-7000.conf //集群节点配置文件
  • cluster-node-timeout  10000 //集群节点超时时间
  • appendonly  yes //开启AOF持久化
  • appendfilename "appendonly-7000.aof" //修改aof文件名
  • appenddirname "appendonlydir-7000" //redis7.0 以上的版本需要配置

5、指定不同目录配置文件启动七个节点

6、查看进程

6、创建集群

redis-cli --cluster create 192.168.6.101:7000 192.168.6.101:7001 192.168.6.101:7002 192.168.6.101:7003 192.168.6.101:7004 192.168.6.101:7005 --cluster-replicas 1

7、查看集群状态

  • 主节点
    主节点存在hash slots,且主节点的hash slots 没有交叉
    主节点不能删除
    一个主节点可以有多个从节点
    主节点宕机时多个副本之间自动选举主节点

  • 从节点
    从节点没有hash slots
    从节点可以删除
    从节点不负责数据的写,只负责数据的同步

redis-cli --cluster check 192.168.6.101:7000

8、添加子节点

redis-cli --cluster add-node 192.168.6.101:7006 192.168.6.101:7000 --cluster-slave

  • 注意:
    1.该节点必须以集群模式启动
    2.默认情况下该节点就是以master节点形式添加

9、删除副本节点

redis-cli --cluster del-node 192.168.6.101:7006 644d0c38277fd4d9b0a11951c6f6ecea726d0b98

  • 注意:
    1.被删除的节点必须是从节点或没有被分配hash slots的节点

posted @   w我自横刀向天笑  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示