ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

016-学习Redis-主从服用、哨兵、主备切换、集群概念

2022-01-24 21:32:03  阅读:183  来源: 互联网

标签:opt 配置文件 Redis redis 6379 主备 016 服务器 主从


016-学习Redis-主从服用

回顾内容:

1.搭建单节点的redis:
	优点是部署简单。
	缺点是读写压力大,全部在一个服务器上面。
	没有高可用性,服务器挂掉后,就无法使用了
2.读写分离:
	主服务器负责读写
	从服务器只负责读,会把读的压力分散出去。
	提高了一定的可用性,一个从服务器宕机后,另外两天服务器还可以继续工作。
	缺点是:
	主服务器挂掉后,就不能继续写操作了。
3.哨兵机制,主备切换:
	监控主服务器有无挂机,挂机后,重新选举主服务器。
	缺点是:
	1.写的压力没有被分散掉,所有的写的压力都在服务器上面。
	2.主服务器通过 发布订阅 形式,那么主服务器有12W条数据,那么从服务器同样有12万条数据。
	那么对资源是一种浪费。如何解决? 搭建集群。
4.搭建集群
	例如:3台主服务器,3台从服务器。

集群环境如何存储数据:
	例如12W条数据,每天服务器存储2W条左右数据。

某个数据如何存储数据呢?
	根据hash值计算,例如23800,那么就是进行插入第二个服务器当中。

一、主从讲解:

1、redis的优缺点

安装简单:make预编译–》make install 安装–》配置redis-conf文件

缺点:
1.现在只有一台服务器,读写都在上面,如果访问量比较大,读写压力会很大。
2.当宕机时,就无法使用redis了。

2、主从概念-例子:

小例子:火车站有:售票窗口:赋值卖票出票,自动售票机只负责出票。比如火车站只有一个售票窗口,既卖票又出票,所有的人都需要去一个售票窗口,就会很慢。如果发生某些问题,那么就会停止所有操作。
解决方法:
1.集群概念:开启多个窗口,解决压力。当某一个窗口出了问题,其他窗口还可以继续使用。
2. 主从概念:有101个人,前一百个人是买票的,第101个人是取票的。买票很慢,取票很快。那么自动取票机,就会缓解此事情。窗口相当于主节点。自动取票机是从节点,只负责取票。

3、主从概念-提出读写分离

redis大部分数据是频繁访问的,所以读的压力很大,写的压力是很小的。
数据如何通讯的:发布订阅
先保证通信没有问题:master / slave 通过Ping 、pong来确保相互通信是正常的。
发布订阅:当master发布信息后,其他的所有slave都能接受到信息。

Redis支持主从复用。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。MaterSlave的模式,从Slave向Master发起SYNC命令。
可以是1 Master 多Slave,可以分层,Slave下可以再接Slave,可扩展成树状结构。
因为没有两台电脑,所以只能在一台机器上搭建两个Redis服务端。
这里使用单机来模拟redis 主从服务器 ,实现读写分离配置

二、主从服用-读写分离

  1. 创建三个目录:mkdir -p /opt/redis/ 日志、数据、配置文件
    根据配置文件启动redis服务器。那么就需要有三个配置文件。
    在这里插入图片描述
  2. 将redis自带的配置文件(原本),复制到 /opt/redis/conf
    在这里插入图片描述

1.将配置文件改为公用,将重复的配置设为公用。

在这里插入图片描述

vim中显示行号:
在这里插入图片描述

  • 所有ip地址都能访问:
    在这里插入图片描述
  • 保护模式:改为no.
  • 端口号:每个主从节点,在自己的配置文件上面,在加上。
    在这里插入图片描述
  • 后台启动:改为yes
    在这里插入图片描述
  • 每个服务器都有进程文件,注释掉
    在这里插入图片描述
  • 关闭日志
    在这里插入图片描述
  • 关闭持久化opt
    在这里插入图片描述
  • 更改日志目录
    在这里插入图片描述
  • 从服务器访问主服务器的密码
    在这里插入图片描述
  • 主服务器登录时,访问的密码
    在这里插入图片描述

2.创建三个私有的配置文件

在这里插入图片描述
在这里插入图片描述

  • 6379的配置文件:
#引用公共配置
include /opt/redis/conf/redis-common.conf
#进程编号记录文件
pidfile /var/run/redis-6379.pid
#进程端口号
port 6379
#日志记录文件
logfile "/opt/redis/log/redis-6379.log"
#数据记录文件
dbfilename dump-6379.rdb
#追加文件名称
appendfilename "appendonly-6379.aof"
#下面的配置无需在6379里配置
#备份服务器从属于6379推荐配置配局域网IP
#slaveof 192.168.0.121 6379

  • 6380的配置文件:
#引用公共配置
include /opt/redis/conf/redis-common.conf
#进程编号记录文件
pidfile /var/run/redis-6380.pid
#进程端口号
port 6380
#日志记录文件
logfile "/opt/redis/log/redis-6379.log"
#数据记录文件
dbfilename dump-6380.rdb
#追加文件名称
appendfilename "appendonly-6379.aof"
#下面的配置无需在6379里配置
#备份服务器从属于6379推荐配置配局域网IP
#slaveof 192.168.0.121 6379
  • 6381的配置文件:
#引用公共配置
include /opt/redis/conf/redis-common.conf
#进程编号记录文件
pidfile /var/run/redis-6381.pid
#进程端口号
port 6381
#日志记录文件
logfile "/opt/redis/log/redis-6379.log"
#数据记录文件
dbfilename dump-6381.rdb
#追加文件名称
appendfilename "appendonly-6379.aof"
#下面的配置无需在6379里配置
#备份服务器从属于6379推荐配置配局域网IP
slaveof 192.168.0.121 6379

3.启动三个服务器:

在这里插入图片描述

  • 开启三个服务器:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 查看主从节点信息:
    在这里插入图片描述

4.测试主从、读取

  • 主节点:能读能写
    在这里插入图片描述
  • 从节点:只能读,不能写
    在这里插入图片描述

5、优缺点

优点:

  1. 分散了读的压力
  2. 提高了一定的可用性:某个从服务器宕机了,其他服务器依旧可以使用。

缺点:

  1. 主服务器挂机了,就不能支持写操作了。

三、主从服用-哨兵配置

哨兵会去检测整个主从复用,如果主服务器挂掉后,会重新选举slave服务器来当做master服务器。那么挂掉的主服务器,重启后,会是slave服务器。

1、将哨兵配置文件改为公用。mv 修改名字

  1. 赋值哨兵配置文件,到/opt/redis/conf。
    从redis解压目录下复制sentinel.conf至/opt/redis/conf/
    在这里插入图片描述

编写公用的配置

  1. 注释端口,每个私有配置都有自己的端口
    在这里插入图片描述

  2. 后台启动 yes
    在这里插入图片描述

  3. 关闭进程、日志文件
    在这里插入图片描述

  4. 哨兵监控的服务器地址:***,
    2:三个哨兵监控,就需要2个统一选举。
    5个哨兵,需要3确实统一选举。
    在这里插入图片描述

  5. 连接主服务器的密码
    在这里插入图片描述

  6. 如何判断主节点有无挂掉?
    例如只有一秒网络不好,master没有连接上。并不能立马去选举。
    判断连续30秒,没有连接上,那么需要进行选举。
    本人设为10秒,当哨兵连续30秒都没有ping通,则重新进行选举。
    在这里插入图片描述

  7. 当哨兵出现选举不成功时,默认180秒后重新选举
    在这里插入图片描述

2、创建三个私有的配置文件

在这里插入图片描述

#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26379
#进程编号记录文件
pidfile /var/run/sentinel-26379.pid
#日志记录文件(为了方便查看日志,先注释掉,搭好环境后再打开)
logfile "/opt/redis/log/sentinel-26379.log"
#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26380
#进程编号记录文件
pidfile /var/run/sentinel-26380.pid
#日志记录文件(为了方便查看日志,先注释掉,搭好环境后再打开)
logfile "/opt/redis/log/sentinel-26380.log"
#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26381
#进程编号记录文件
pidfile /var/run/sentinel-26381.pid
#日志记录文件(为了方便查看日志,先注释掉,搭好环境后再打开)
logfile "/opt/redis/log/sentinel-26381.log"

3、启动哨兵服务器

在这里插入图片描述

四、主从服用-主备切换

1.查看日志

当主节点宕机后,需要两个哨兵认为是宕机了, 才进行主备切换

tail -f /opt/redis/log/sentinel-26379.log
在这里插入图片描述

2、模拟服务器挂机的状态

1.kill -9 master

在这里插入图片描述

  • 查看master信息
    连接失败
    在这里插入图片描述

2.master哨兵日志信息:

sdown:主服务器下线了
odown:3个哨兵,2个哨兵说已经下线了。
tyr :尝试重新连接服务器,连接失败。
seelct:选择了6381服务器,为主服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、重启启动原来的master 6379


在这里插入图片描述

1.6379发现是slave了

在这里插入图片描述

2.现在的6381是master

在这里插入图片描述

4、主从服务器,读写测试:

1、主服务器 6381。读写都可以

在这里插入图片描述

2、从服务器。只读

在这里插入图片描述

五、集群

3台主服务器,3台从服务器。
集群环境如何存储数据:
例如12W条数据,每天服务器存储2W条左右数据。

某个数据如何存储数据呢?
根据hash值计算,例如23800,那么就是进行插入第二个服务器当中。

在这里插入图片描述

标签:opt,配置文件,Redis,redis,6379,主备,016,服务器,主从
来源: https://blog.csdn.net/weixin_43989347/article/details/122663524

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有