Redis 第六集Redis主从复制(Redis)

@author:拈花为何不一笑。

说明:1.此项目完整的演示需要读者有一定的linux、Redis、分布式集群及网络基础。
2.Redis主从复制是使用Redis两个特性来完成的,它们分别是:持久化特性和复制特性。
3.这里用简单的主从复制,笔者称其为"Redis旧版复制功能",学会后对于新版的复制简直小case
4.由于Redis使用C语言来开发的一个软件,后续笔者可能"捡起C"来解读Redis源码与大家分享。

=======>>>>此演示目录结构图,如下:
在这里插入图片描述

1.两个概念:

 (1)在Redis中,用户可以通过执行SLAVEOF命令或设置slaveof选项,让一个服务器去复制(replicate)
 另一个服务器,我们称被复制的
	 服务器为主服务器(master),而对主服务器进行复制的服务器称之为从服务器(slave)。
	 
	 (2)为什么要主从复制?平台扩展,负载匀衡,安全性(其中一台redis服务器发生故障,另一台可以
	 直接顶上)。
	 
	 其实,这是Redis定义为数据库时,而提供的一种数据库应用特性。大家都知道关系型数据库
	 mysql也有主从复制,同样的redis作为数据库也需要有这种特性。不然的话,都不好意思定义
	 为"数据库",毕竟Redis是当下非常火的一个工具。

2.使用VMWare搭建一个局域网网络(缺少硬件条件只能使用虚拟技术,类比下VPN会很有趣喔~)。

	笔者将把原来的host-only联网方式改变成nat方式,实现局域网内机器之间能够相互通信。
	局域网内建立三台linux服务器,两个linux服务器中分别布署两台Redis应用服务器,将其中一台
	Redis应用服务器设置成Redis主服务器
	另外一台设置成Redis从服务器,而剩下一台linux服务器也布署一台Redis应用服务器,这台Redis应
	用服务器用于Redis主服务器发生故障时	用它顶替,将它设置成主服务器。
	
	此演示略,只展示一张连通图(对于这种分布式的环境的简单搭建这里只提供思路,如果读者有需求
	笔者可以考虑后续单独写一集)。

在这里插入图片描述

3.如何设置成一台Redis服务器为主服务器和从服务器

 3.1 使用复制特性的前提必须实现了持久化特性,比如RDB和AOF(这个可以阅读笔者写的Redis第五集)
		3.2 满足前提条件后,开始安装两台Redis服务器,在其中一台的redis.conf中设置选项:
		slaveof host port ,那么设置这个选项的
			Redis服务器就为从服务器,而host(ip或域名)指向哪个Redis,那个Redis就是主服务器,port也是
			主服务器的端口
		
		说明:设置成redis从服务器的同时,就明确了主从服务器了。设置redis从服务器的必须选项只有一
		个:slaveof host port
			简单吧,这样就设置成Redis主服务器和Redsi从服务器了。当然也可以在同一个Linux系统或
			Windows系统中装两台Redis服务器,
			需要注意的是两台Redis服务器的监听端口不能一样,这个和玩两台tomcat的原理是类似的。笔
			者这里使用两台Linux系统中分别安装	两台Redis服务器,是为了更接近于实际应用中的Redis主
			从复制。 企业中通常情况下不可能在一台linux服务器中布署两台Redis。

4.Redis主从复制演示,如下:

说明:(4.1) 其实info命令是一个很好玩的命令,
  			提供了大量的与Redis服务器当前状态有关的信息,比如查看数据是否成功写到磁盘中的aof_pending_bio_fsync属性值,为0表示成功
  		  (4.2)如何让Redis从服务器不再进行对主服务器复制呢,在从服务器中发一条命令:slaveof no one
  		  (4.3)主从链:Redis只提供主从复制,不支持主主复制。而主从复制还可以"做成链条"称其为主从链。
  

演示图,start===>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.处理Redis系统故障

 5.1 验证快照文件(比如dump.RDB文件)和AOF文件
			用法:redis-check-dump  <dump.rdb>
			用法:redis-check-aof [--fix] <file.aof>
		 这两个命令是在.rdb文件和.aof文件有错误的时候,可以用它们来进行修复。
		 
5.2 当Redis主服务器发生故障时,弄一台其它的Redis服务器来顶替(应该叫顶上,比较爽,你说
	是不是?),这里的演示,贴一张图,对于玩linux的同学来说,下面的命令简直是小case了吧。
		ssh命令(不是java中的ssh框架喔~)熟悉吧~

在这里插入图片描述

说明:这里所说的Redis故障处理是指:把前面所说的第三台Linux系统中的正常的Redis服务器代替发生故障的Redis主服务器,从而实现Redis能够对用户继续提供Redis服务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值