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

举报
刘大猫 发表于 2025/11/04 21:40:32 2025/11/04
【摘要】 Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释 部分1

image.png

@[TOC]

一. 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. 创建三个目录(数据文件、日志文件、配置文件)

image.png

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

image.png

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

    3.1注释掉 bind 127.0.0.1

image.png

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

image.png

3.3注释公共配置端口

image.png

3.4修改为后台启动

image.png

3.5注释进程编号记录文件

image.png

3.6注释公共配置日志文件

image.png

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

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

image.png

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

image.png

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。