Redis主从复制,哨兵学习笔记

常用命令:


redis-server -v          #查看redis版本信息
ps -ef|grep redis        #查看pid
ls -l /proc/pid/cwd      #查看redis 安装目录
shutdown  			     #关闭

#启动redis-server
redis-server redis.conf

#客户端连接redis 
redis-cli -p 6279 -h 22.8.159.93 -a 123456

查看redis主从信息:

info replication       #查看当前库的信息

# Replication
role:master               #主界定
connected_slaves:0           #无从节点
master_replid:61935060ab778f5c8293b9cd731e67aec64b7d95
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

redis主从复制:

概念:
我们可以通过部署多台redis,并在配置文件中指定这几台redis之间的主从关系,主负责写入数据,同时把写入的数据实时同步到从机器,这种模式叫做主从复制,即master/slave,并且redis默认master用于写,slave用于读,向slave写数据会导致错误。
在这里插入图片描述
作用:
1、数据冗余,实现数据热表内分,是持久化之外的一种数据冗余方式
2、故障恢复:主节点出现问题,从节点提供服务,快速故障恢复
3、负载均衡:主节点提供写操作,从节点提供读操作,提高redis的并发量
4、高可用(集群)基石:是redis高可用的基础,主从复制还是哨兵和集群能够实施的基础

复制原理:

Slave启动成功连接到master后发送一个sync命令,,Master接到命令,启动后台的存盘进程,同时手机所有接收到的用于修改数据集命令,在后台进程执行完毕后,master将传送整个数据文件到salve,并完成一次完全同步

全量复制:salve服务再接收到数据库文件数据后,将其存盘并加载到内存中
增量复制: master 继续将新的所有收集到的修改命令依次传给slave,完成同步

只要重新连接master,一次完全同步(全量复制)将被自动执行
Redis主从复制配置:

只要配置redis /config就行

port 6279                                #配置端口
pidfile /var/run/redis_6279.pid          #pid的名字
logfile "redis-6279.log"                 #log文件的名字
dbfilename dump3279.rdb                  #dump.rdb的名字     
daemonize yes                            #后台运行  
bind xx.xx.xx.xx                         #注意绑定ip地址    

ps:默认情况下 每台redis服务器都是主节点 需要更改配置文件才能默认为从节点

#把当前节点变成从节点
#命令模式 当前有效
slaveof <masterip> <masterport>  (主redis  ip:port) 
slaveof xx.xx.xx.xx 6379   

#将一台slave服务器提升为Master (提升某slave为master)
slaveof no one

#.conf配置文件模式   永久有效
replicaof <masterip> <masterport>  
masterauth <master-password>  
 1. 主机断开,从机依旧连接主机,但是没有写操作,这个时候主机重新恢复,从机依旧可以直接获取主机写的信息
 2. 从机断开,再次恢复立马从主机中获取值

哨兵模式:

原理:

哨兵通过发送命令,等待redis服务器的响应,从而监控运行的多个redis实例
redis提供了哨兵命令,哨兵是一个独立的进程,独立运行

重启过程是先所有主从起来后再起哨兵,为了方便建议做个重启shell脚本。
举例:

假设主服务器宕机,哨兵一先检测到这个结果,系统并不会马上进行选举failover(故障转移)过程,仅仅是哨兵1认为嘱咐我器不可用,这个现象称为 主观下线 当其他的哨兵也发现主服务器不可用时,那么哨兵之间才会进行一次投票选举,投票的结果由一个哨兵发起,进行failover(故障转移) 操作,切换成功后 ,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为: 客观下线。

(ps: a给负责人打电话,打不通, b再给负责人打电话,还是不同,c打电话也打不通,就代表失去联系了 这个时候才进行选举故障转移)

简单配置哨兵

配置文件:sentinel.conf

#核心配置  主机名、IP、端口、投票选取次数   
sentinel monitor  mymaster(别名)  ip port   2  

#启动哨兵
redis-sentinel sentinel.conf 
./redis-server  sentinel.conf
如果主机down了 ,  哨兵会自动选举 (算法) 选出新的主机,
这个时候如果down主机再次恢复,也只能当从机了 (哨兵规则)
哨兵优点:

1、哨兵集群,基于主从复制模式,具备所有的主从配置优点
2、主从可以切换,故障可以转移,系统的可用性会更好
3、哨兵模式就是主从模式的升级,手动到自动,更见健壮

哨兵缺点:

1、redis不好在线扩容,集群容量一旦达到上限,在线扩容很妈蛋
2、哨兵模式集群分配置非常麻烦。

哨兵模式的全部配置:
# Example sentinel.conf
port 26379

#哨兵工作目录
dir /temp

#master-name  可以自己命名德主节点名称  
#quorum   配置多少个sentinel哨兵统一认为 master主节点失联,那么这时客观上认为主节点失联了
#sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 22.8.159.92 6379 2 


#当redis实例中开启requirepass foobared授权密码  所有reidis实例都需要提供密码
#设置哨兵sentinel  连接主从的密码必须设置一样的
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster MySUPER--secret-0123passwOrd

#指定多少毫秒 主节点没有应答扫兵   此时哨兵主管文飞主节点下线  默认30s
sentinel down-after-milliseconds mymaster 30000

#指定发生failover主备切换时最多可以由多少个slave   同时对新的master 进行同步
#数字越小,完成failover所需实际越长
#但是如果这个数字越大,意味着越多的slave因为replication而不可用
#默认配置1  来保证每次只有一个slave处于不能处理命令请求的状态
# sentinel parallel-syncs <master-name> <numreplicas>
sentinel parallel-syncs mymaster 1

#故障转移的超市时间
#1、同一个sentinel对同一个master两次failover之间的间隔时间
#2、当一个slave从一个错误的master那里同步数据开始计算时间  直到slave被纠正为向正确的master哪里同步数据时。
#3、当想要取消一个正在进行的failover所需时间
#4、当进行failover时,配置所有slaves指向新的master所需最大的时候,不过即便超时,slaves依然会被正确配置为指向master,但是不按照parallel-syncs所配置的规则来进行
#默认3分钟
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000


#配置脚本  当发生问题发邮件通知相关人员排查
# sentinel notification-script <master-name> <script-path>

#客户端重新配置主节点参数脚本
#一般由运维人员配置   告诉运维人员主节点发生改变
# sentinel client-reconfig-script <master-name> <script-path>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值