redis集群三种模式

redis 集群 高可用

redis集群三种模式

主从复制    奇数台 3 一主两从

哨兵模式    3    一主两从

cluser        集群    6    3 3 3 9

主从复制:和mysql的主从复制类似,写入主的数据通过rdb方式把数据同步到从服务器。从不能更新到主,也是哨兵模式的基础

缺点:故障自动化恢复,只有主能够写

哨兵:故障自动化恢复,主从复制完成之后,从服务器会变成只读模式,故障切换时,主故障,变成从之后,也会进入只读模式

缺点:从节点一旦故障,读会受到影响

集群:把每两台服务器作为主从模式,形成一个大的主从的集群解决了写操作的负载均衡。较为完善的高可用方案

缺点:保证高可用,对数据的完整性要求不高。

主从复制:

主节点和从节点

数据的复制是单向的,由主复制到从

主从复制的流程:

 redis主从复制的实验:

实验准备:

主从IP地址
master192.168.233.41
slave1192.168.233.42
slave2192.168.233.43

 

实验前准备好三台源码编译安装好的redis虚拟机

实验步骤:

步骤一:修改master节点的配置文件 


vim /etc/redis/6379.conf 
 bind 0.0.0.0                      #70行,修改监听地址为0.0.0.0(生产环境中,尤其是多网卡最好填写物理网卡的IP)
 daemonize yes                     #137行,开启守护进程,后台启动 
 logfile /var/log/redis_6379.log   #172行,指定日志文件存放目录
 dir /var/lib/redis/6379           #264行,指定工作目录
 appendonly yes                    #700行,开启AOF持久化功能
​
/etc/init.d/redis_6379 restart     #重启redis服务

 步骤二:修改slave节点的配置文件 


#修改slave1和slave2的配置文件
vim /etc/redis/6379.conf 
 bind 0.0.0.0                        #70行,修改监听地址为0.0.0.0(生产环境中需要填写物理网卡的IP)
 daemonize yes                       #137行,开启守护进程,后台启动
 logfile /var/log/redis_6379.log     #172行,指定日志文件目录
 dir /var/lib/redis/6379             #264行,指定工作目录
 replicaof 192.168.73.105 6379       #288行,指定要同步的Master节点的IP和端口
 appendonly yes                      #700行,修改为yes,开启AOF持久化功能

/etc/init.d/redis_6379 restart       #重启redis
netstat -natp | grep redis           #查看主从服务器是否已建立连接

 

 步骤三:使用redis工具在主中创建键值查看 

 

 


哨兵:故障自动化恢复,主从复制完成之后,从服务器变成只读模式

故障切换时,主故障,变成从服务器,主变成从之后,也会进入只读模式

缺点:从节点一旦故障,读会收到影响

切换方式:不是按照权重来进行切换 是以投票的方式:主宕机其他服务器投票,选举,Raft算法,选一个离当前时间点更新最快的从变成主  

sentinel monitor mymaster 192.168.233.7 6379 2

初始化监听,都是监听主,监听主动服务器的状态

2 对应的从服务器的数量以及投票的参与者 参与者要和从服务器的数量一致

2台服务器投票通过,主才能进行故障转移。

sentinel down-after-milliseconds mymaster 30000

判断服务器宕机的时间周期 30秒,每30秒检测一次

sentinel failover-timeout mymaster 180000

判断故障节点的超时的最大时间 180秒

redis-sentinel sentinel.conf &

启动哨兵模式命令

redis-cli -p26379 info Sentinel

查看哨兵模式的状态命令

 redis哨兵模式的部署

 实验组件部署
 

主从ip地址
master192.168.233.41
slave1192.168.233.42
slave2192.168.233.43

实验具体操作步骤 :

步骤一:修改哨兵节点的配置文件(三台一起)

哨兵的的配置文件是redis软件中自带的配置 

vim /opt/redis-5.0.7/sentinel.conf
......
protected-mode no                                #17行,取消注释,关闭保护模式
port 26379                                       #21行,Redis哨兵默认的监听端口
daemonize yes                                    #26行,指定sentinel为后台启动
logfile "/var/log/sentinel.log"                  #36行,指定日志文件存放路径
dir "/var/lib/redis/6379"                        #65行,指定数据库存放路径
sentinel monitor mymaster 192.168.73.105 6379 2  #84行,修改
#指定该哨兵节点监控192.168.73.105:6379这个主节点,该主节点的名称是mymaster。
#最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移
​
sentinel down-after-milliseconds mymaster 3000  #113行,判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000  #146行,同一个sentinel对同一个master两次failover之间的间隔时间(180秒)
​

步骤二:启动 哨兵模式

#启动三台哨兵
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &


集群:

redis3.0之后的分布式存储方案

集群由多个节点组成,redis数据保存在这些节点中

集群中的节点分为主和从

主负责读写以及维护集群的信息

从节点进行主从数据的复制(也可以查)

redis集群的数据分片

在集群概念中,引用的是hash槽的概念

创建了集群就有16384个哈希槽

3个节点:

主1 0-5460

主2 5461-10922

主3 10923-16383

节点当中如果主和从全部失败整个集群都将不可用

redis-cluster集群实验

实验准备:

六台主机

准备六台主机
redis1 192.168.233.41
redis2 192.168.233.42
redis3 192.168.233.43
redis5 192.168.233.45
redis6 192.168.233.46
redis7 192.168.233.47

关闭防火墙和安全机制
vim /etc/redis/6379.conf
70行
bind 0.0.0.0
#监听所有端口
89行
protected-mode no
#关闭保护模式
136行
daemonize yes
700
appendonly yes
#开启aof持久化
833行
cluster-enabled yes
841行取消注释
cluster-config-file nodes-6379.conf
847行取消注释
cluster-node-timeout 15000
 
cd /etc/redis
sz 6379.conf
#将6379这个配置文件发送到其他五台主机同步配置文件
 
/etc/init.d/redis_6379 restart
#所有主机重启redis服务

回到redis1:
redis-cli -h 192.168.233.41 --cluster create 192.168.233.41:6379 192.168.233.45:6379 192.168.233.42:6379 192.168.233.46:6379 192.168.233.43:6379 192.168.233.47:6379 --cluster-replicas 1

进入redis1:
redis-clli
cluster nodes
#查看主从详细信息
set test1 1
keys *
#在redis1上创建一个键值对到从主机上查看一下

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一款流行的开源内存数据存储系统,由于其高效的性能和可靠的稳定性,被广泛的应用于各行各业的应用中。为了满足业务增长和高可用性的需求,Redis提供了多种方式来构建集群,包括主从复制、Sentinel高可用、Redis Cluster三种方式。 1. 主从复制:主从复制是Redis最简单的高可用方案。其基本思路是将数据复制到多个从节点上,这些从节点可以接受读取请求,而主节点则负责写入请求。读操作和写操作分离,极大程度的提高了Redis的并发处理能力,同时也保证了数据的一致性和可靠性。 2. Sentinel高可用:Sentinel是Redis官方推荐的高可用解决方案。Sentinel可以自动检测主节点是否宕机,如果发现主节点宕机,则会自动将其中的从节点升级为主节点,并将新的主节点IP地址广播给其他从节点。这种方式可以解决单点故障问题,提高Redis的可靠性。 3. Redis Cluster:Redis Cluster是Redis提供的分布式解决方案,可以将多个Redis实例组成一个分布式集群。整个集群分为多个slot,每个实例负责一部分slot。这种方式不仅可以实现水平扩展,提高Redis的存储容量,同时也支持自动的故障转移和负载均衡,大大提高了Redis的高可用性和稳定性。 总之,在选择Redis集群方案时,需要根据实际业务需求和系统性能来选择合适的方案。在集群搭建过程中,需要注意配置参数的调整,避免出现性能瓶颈,从而保证系统稳定性和高可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值