redis三:集群配置

文章目录

  • redis集群配置
    • 主从复制
    • 哨兵模式
    • 集群搭建

redis集群配置

不熟悉redis请先看:redis6学习

主从复制

主从模式指的是使用一个redis实例作为主机,其余的实例作为备份机。主机和从机的数据完全一致,主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取,也就是说,客户端可以将数据写入到主机,由主机自动将数据的写入操作同步到从机。主从模式很好的解决了数据备份问题,并且由于主从服务数据几乎是一致的,因而可以将写入数据的命令发送给主机执行,而读取数据的命令发送给不同的从机执行,从而达到读写分离的目的。
缺点

  • 主节点宕机,无法继续使用
  • 需要通过配置切换到从节点(通过Nginx反向代理、修改redis配置地址等)
  • 降低读的访问能力,写的访问没有降低 数据同步也存在问题
  • 单台机器内存有局限性

作用

  • 读写分离,性能扩展
  • 容灾快速恢复
    redis三:集群配置_第1张图片
    搭建
    本次以搭建一主两从为案例
    准备
    准备三台centos7服务器分别为192.168.3.106、192.168.3.107、192.168.3.108
    关闭防火墙:systemctl stop firewalld.service
    步骤
  1. 正常启动三台redis服务 并进入客户端
    src/redis-server redis.conf
    src/redis-cli
  2. 清空里面的数据并且查看启动信息
    清空数据:flushall
    查看启动信息:info replication
    在这里插入图片描述
  3. 配从(库)不配主(库)
    以192.168.3.106 节点为主节点,其他两个为从节点
    slaveof
    在192.168.3.107、192.168.3.108这两个节点上执行
    slaveof 192.168.3.106 6379
    在这里插入图片描述
  4. 在此查看三个服务器的启动信息
    redis三:集群配置_第2张图片
  5. 测试
    在从节点中插入数据,报错从节点只允许读操作
    redis三:集群配置_第3张图片
    在主节点中插入数据,查看其他从节点,都能获取数据
    redis三:集群配置_第4张图片
    到此主从配置成功
  6. 主节点宕机
    在这里插入图片描述
    可以看到两个从节点不会成为主节点,重启主节点即可恢复
    在这里插入图片描述
  7. 从节点宕机
    重新启动后,还需要设置slaveof 192.168.3.106 6379

哨兵模式

准备四台服务器 分别为192.168.3.106、192.168.3.107、192.168.3.108、192.168.3.109
搭建
1.按照主从复制模式,搭建一主两从
192.168.3.106 为主服务器,192.168.3.107、192.168.3.108 为从服务器 (主从搭建如上)
2.将192.168.3.109 作为哨兵模式启动

  • sentinel.conf 文件
    在redis src 目录下有个sentinel.conf 文件, 该文件重要的属性
    sentinel monitor mymaster 127.0.0.1 6379 2
    其中mymaster为监控对象起的服务器名称,ip地址、端口为master 服务器 2表示至少有多少个哨兵同意迁移的数量。
    redis三:集群配置_第5张图片
  • 修改sentinel.conf 将 默认的sentinel monitor mymaster 127.0.0.1 6379 2 改为
    sentinel monitor mymaster 192.168.3.106 6379 1
  • 启动哨兵 src/redis-sentinel sentinel.conf
    redis三:集群配置_第6张图片
    可以看到哨兵监听到主服务器
    3.关闭主服务器,查看哨兵信息
    redis三:集群配置_第7张图片
    看到哨兵主服务器down,选举108的作为主服务器
    4.故障恢复
    redis三:集群配置_第8张图片
    优先级在redis.conf中默认:slave-priority 100,值越小优先级越高
    偏移量是指获得原主机数据最全的
    每个redis实例启动后都会随机生成一个40位的runid

集群搭建

概念
Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。
Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求
准备
六台虚拟机,分别为192.168.3.106、192.168.3.107、192.168.3.108、192.168.3.109、192.168.3.110、192.168.3.111
删除所有节点的aof、rdb文件 rm -rf *.rdb *.aof
开始搭建

  1. 修改redis.conf
    redis三:集群配置_第9张图片
    cluster-enabled yes 打开集群模式
    cluster-config-file nodes-6379.conf 设定节点配置文件名
    cluster-node-timeout 15000 设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换。

  2. 启动所有的redis
    通过ps -ef|grep redis 查看所有的redis是否启动成功
    启动成功后会在生成 nodes-6379.conf

  3. 创建集群
    用redis-cli 创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)
    通过redis-cli --cluster help来获取指令
    create host1:port1 … hostN:portN
    –cluster-replicas 表示复制因子 1表示 一主一从
    根据算法自动配置主从

src/redis-cli --cluster create 192.168.3.106:6379 192.168.3.107:6379 192.168.3.108:6379 192.168.3.109:6379 192.168.3.110:6379 192.168.3.111:6379 --cluster-replicas 1

输入命令后开始分配槽,分配主从节点,然后提示是否确认此分配,输入yes
redis三:集群配置_第10张图片
redis三:集群配置_第11张图片
到此集群搭建完毕

  1. 测试集群
    连接任意一个客户端即可:src/redis-cli -c -h -p(-a访问服务端密码 -c集群模式 -h-p 表示ip地址和端口)
    src/redis-cli -c -h 192.168.3.106 -p 6379
    cluster info(查看集群信息)
    redis三:集群配置_第12张图片
    cluster nodes (查看节点列表)
    在这里插入图片描述
    第一串字符表示节点id
    master : 主节点
    slave:表示从节点 后面跟着的id 表示是这个主节点的从节点 上图可以看出 110节点是106节点的从节点
    myself:本机
    最后的数字表示主机连接的槽
    数据测试
    redis三:集群配置_第13张图片
    数据插入的时候会根据槽进行数据存储,插入name的值属于107节点的会自动连接107进行存储

  2. 关闭集群
    关闭集群则需要逐个进行关闭

你可能感兴趣的:(redis6,redis)