Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第1张图片

文章目录

  • 一. Redis 搭建主从复用-读写分离
      • 创建三个目录(数据文件、日志文件、配置文件)
      • 复制 redis.conf 至/opt/redis/conf 目录下
      • 修改 redis-common.conf 公共配置文件
          • 3.1注释掉 bind 127.0.0.1
          • 3.2关闭保护模式,修改为 no
          • 3.3注释公共配置端口
          • 3.4修改为后台启动
          • 3.5注释进程编号记录文件
          • 3.6注释公共配置日志文件
          • 3.7注释公共配置数据文件、修改数据文件路径
          • 3.8添加从服务器访问主服务器认证
          • 3.9添加访问认证
          • 3.10注释公共配置追加文件
          • 3.11从服务器默认是只读不允许写操作(不用修改)
      • 添加 3 个服务的私有配置文件 -> 引用公共配置文件并修改自己的部分配置
      • 运行 3 个 redis 进程
      • 查看 redis 服务器主从状态
  • 二. Redis 搭建主从复用-主备切换
      • 1.redis 节点准备
      • 2.主从节点 redis.conf 配置
      • 3.修改 sentinel-common.conf 哨兵公共配置文件
          • 3.1从 redis 解压目录下复制 sentinel.conf 至/opt/redis/conf/
          • 3.2注释哨兵监听进程端口号
          • 3.3指示 Sentinel 去监视一个名为 master 的主服务器
          • 3.4设置 master 和 slaves 的密码
          • 3.5 Sentinel 认为服务器已经断线所需的毫秒数
          • 3.6 若 sentinel 在该配置值内未能完成 failover 操作(即故障时 master/slave 自动切
          • 3.7 关闭保护模式,修改为 no
          • 3.8 修改为后台启动(为了方便查看日志,先注释掉,搭好环境后再打开)
      • 4.添加 3 个哨兵的私有配置文件
      • 5.启动测试
          • 5.1 启动 3 个 redis 服务
          • 5.2 启动 3 个哨兵服务
          • 5.3 查看主从状态
          • 5.4 检测哨兵功能是否配置成功

一. Redis 搭建主从复用-读写分离

Redis 支持主从复用。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。 Mater Slave 的模式,从 Slave 向 Master 发起 SYNC 命令。
​ 可以是 1 Master 多 Slave,可以分层, Slave 下可以再接 Slave,可扩展成树状结构。

Redis的架构模式:
	1.单机版
		优点:
			搭建和使用简单
		缺点:
			查询和写入都是一台服务器来工作
			无法满足高可用
			
	2.主从复用环境-读写分离
		优点:
			将读写进行分离,提高查询速度
		缺点:
			写数据的压力没有得到缓解
			无法满足高可用
			
	3.主从复用环境-主备切换-哨兵
		优点:
			实现了高可用
		缺点:
			写数据的压力没有得到缓解
			
	4.集群
		缺点:
			搭建环境复杂学习难度增大
			保证集群环境的可用
		优点:
			读写的压力都得到了缓解
			分片处理solt槽
			
============================================================================================			
注意:redis不是实时存储的, 根据除法 save 60 10000  / save 300 10  / save 900 1  
		eg:60秒内执行10000次才进行存储....
	redis将数据库快照保存在dub.rdb的二进制文件中 -> 也就是刚开始执行数据保存在快照中,当触发条件则持久化保存在二进制文件中

			
===========================================================================================		
面试: redis的存储方式解释下:
	可以回答:dum.rdb的存储机制 + appnedonly file的AOP机制
===========================================================================================		
redis搭建主从服用 - 读写分离

	创建公共配置文件:redis-common.conf:
		(1) protected-mode no 					->保护模式
		(2) port 6379  							->公共配置端口
		(3) bind 127.0.0.1  					->绑定本机ip
		(4) daemonize yes  						->设置是否为后台启动
		(5) pidfile /var/run/redis_6379.pid     ->进程编号记录文件
		(6) logfile "" 							->公共配置日志文件
		(7) dbfilename dump.rdb   				->公共配置数据文件
		(8) dir /opt/redis/data   				->数据文件路径
		(9) masterauth root   					->从服务器访问主服务器认证
		(10) requirepass root   				->访问认证
		(11)dependonly no 公共配置追加文件  	->打开区别: 数据不会先存储在快照中,而是通过appendonlyfile的文件
				把所有插入数据/指令添加到那个文件中,然后按照默认自动保存方式,定期的把这里面的输入保存到dump.rdb文件中
				
				使用好处: 就算服务器断了/down了, appendonly.aof文件中也会有数据,直接重新继续执行导入就行
		(12) replace-read-only yes   			->从服务器默认是只读不允许写操作(不用修改)  自动提高查询效率,写的操作自动到主服务器去控制,从服务器值查询即可
============================================================================================	
redis搭建主从服用 - 主备切换-哨兵

	修改 sentinel-common.conf 哨兵公共配置文件:
		(1) #port 26379 										->注释哨兵监听进程端口号	
		(2) protected-mode no  									->关闭保护模式
		(3) daemonize yes  										->修改为后台启动
		(4) sentinel monitor mymaster 192.168.159.128 6379 2	->指示 Sentinel 去监视一个名为 master 的主服务器,这个主服务器的 IP 地址为127.0.0.1,
																		端口号为 6379,而将这个主服务器判断为失效至少需要 1 个(一般设置为 2个)。 Sentinel 同意 
		(5) sentinel auth-pass mymaster root 					->设置 master 和 slaves 的密码
	    (6) sentinel down-after-milliseconds mymaster 10000       		 Sentinel 认为服务器已经断线所需的毫秒数 eg:执行ping,返回pang ,超过10000就代表时效
		(7)	sentinel failover-timeout mymaster 180000			->若 sentinel 在该配置值内未能完成 failover 操作(即故障时 master/slave 自动切换)
																		,则认为本次 failover 失败。

使用步骤:

  1. 创建三个目录(数据文件、日志文件、配置文件)

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第2张图片

  1. 复制 redis.conf 至/opt/redis/conf 目录下

    [外链图片转存失败(img-ioj5argr-1565016570411)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014655746.png)]

  2. 修改 redis-common.conf 公共配置文件

    3.1注释掉 bind 127.0.0.1

    [外链图片转存失败(img-wZaaTIZ4-1565016570414)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014719281.png)]

    3.2关闭保护模式,修改为 no

    [外链图片转存失败(img-xHh3OIio-1565016570415)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014757062.png)]

    3.3注释公共配置端口

    [外链图片转存失败(img-iNX6M96G-1565016570416)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014777041.png)]

    3.4修改为后台启动

    [外链图片转存失败(img-iM6aiva5-1565016570418)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014794272.png)]

    3.5注释进程编号记录文件

    [外链图片转存失败(img-cubs9K12-1565016570420)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014822431.png)]

    3.6注释公共配置日志文件

    [外链图片转存失败(img-ymB5YDf0-1565016570422)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014845039.png)]

    3.7注释公共配置数据文件、修改数据文件路径

    在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb 的二进制文件中。当然,
    这里可以通过修改 redis.conf 配置文件来对数据存储条件进行定义,规定在“ N 秒内数
    据集至少有 M 个改动”这一条件被满足时,自动保存一次数据集。也可以通过调用 save 或
    bgsave ,手动让 Redis 进行数据集保存操作
    dbfilename 和 dir 组合使用, dbfilename 找 dir 路径生成数据文件

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第3张图片

3.8添加从服务器访问主服务器认证

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第4张图片

3.9添加访问认证

[外链图片转存失败(img-xLUF7xwt-1565016570427)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565014956526.png)]

3.10注释公共配置追加文件

根据需求配置是否打开追加文件选项
appendonly yes -> 每当 Redis 执行一个改变数据集的命令时(比如 SET),这个命
令就会被追加到 AOF 文件的末尾。这样的话,当 Redis 重新启时,程序就可以通过重新执
行 AOF 文件中的命令来达到重建数据集的目的。

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第5张图片

3.11从服务器默认是只读不允许写操作(不用修改)

[外链图片转存失败(img-8xi9MbNt-1565016570430)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015023871.png)]

  1. 添加 3 个服务的私有配置文件 -> 引用公共配置文件并修改自己的部分配置

    touch 或者 vi 都可以创建空白文件
    touch 直接创建空白文件, vi 创建并且进入编辑模式, :wq 创建成功,否则不创建

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第6张图片

redis-6379.conf

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第7张图片

复制 redis-6379.conf 的内容至 redis-6380.conf redis-6381.conf 并且修改其
内容,将 6379 替换即可。

  1. 运行 3 个 redis 进程

    Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第8张图片

  2. 查看 redis 服务器主从状态

    Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第9张图片

    Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第10张图片

    redis-6381

    Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第11张图片

    Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第12张图片

二. Redis 搭建主从复用-主备切换

1.redis 节点准备

单台服务器不同端口模拟多台服务器配置
127.0.0.1 6379(master-主节点)
127.0.0.1 6380(slave-从节点)
127.0.0.1 6381(slave-从节点)

2.主从节点 redis.conf 配置

参照↑上面↑的笔记《Redis 搭建主从复用-读写分离》

3.修改 sentinel-common.conf 哨兵公共配置文件

3.1从 redis 解压目录下复制 sentinel.conf 至/opt/redis/conf/

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第13张图片

3.2注释哨兵监听进程端口号

[外链图片转存失败(img-c1tjDyjz-1565016570445)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015610538.png)]

3.3指示 Sentinel 去监视一个名为 master 的主服务器

这个主服务器的 IP 地址为127.0.0.1,端口号为 6379,而将这个主服务器判断为失效至少需要 1 个(一般设置为 2个)。 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。

这个要配局域网 IP,否则远程连不上。

[外链图片转存失败(img-xC3V70vP-1565016570448)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015638344.png)]

3.4设置 master 和 slaves 的密码

[外链图片转存失败(img-wm2luSOo-1565016570450)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015662168.png)]

3.5 Sentinel 认为服务器已经断线所需的毫秒数

[外链图片转存失败(img-W4KjzyrZ-1565016570452)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015690744.png)]

3.6 若 sentinel 在该配置值内未能完成 failover 操作(即故障时 master/slave 自动切

换),则认为本次 failover 失败。

[外链图片转存失败(img-OnEYlzuy-1565016570453)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015707687.png)]

3.7 关闭保护模式,修改为 no

[外链图片转存失败(img-qsjzmjhq-1565016570454)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015765551.png)]

3.8 修改为后台启动(为了方便查看日志,先注释掉,搭好环境后再打开)

[外链图片转存失败(img-ygXKHsyg-1565016570456)(C:\Users\924382407\AppData\Roaming\Typora\typora-user-images\1565015780472.png)]

4.添加 3 个哨兵的私有配置文件

touch 或者 vi 都可以创建空白文件
touch 直接创建空白文件, vi 创建并且进入编辑模式, :wq 创建成功,否则不创建

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第14张图片

sentinel-26379.conf

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第15张图片

复制 sentinel-26379.conf 的内容至 sentinel-26380.conf sentinel-26381.conf 并 且修改其内容,将 26379 替换即可。

5.启动测试

5.1 启动 3 个 redis 服务

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第16张图片

5.2 启动 3 个哨兵服务

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第17张图片

5.3 查看主从状态

redis-6379

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第18张图片

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第19张图片

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第20张图片

5.4 检测哨兵功能是否配置成功

kill -9 终止 redis-6379,查看哨兵是否选举了新的主节点

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第21张图片

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释_第22张图片

你可能感兴趣的:(Redis,Redis关键词使用详解)