Redis教程

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

本文主要是介绍016-学习Redis-主从服用、哨兵、主备切换、集群概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

016-学习Redis-主从服用

    • 回顾内容:
  • 一、主从讲解:
    • 1、redis的优缺点
    • 2、主从概念-例子:
    • 3、主从概念-提出读写分离
  • 二、主从服用-读写分离
    • 1.将配置文件改为公用,将重复的配置设为公用。
    • 2.创建三个私有的配置文件
    • 3.启动三个服务器:
    • 4.测试主从、读取
    • 5、优缺点
  • 三、主从服用-哨兵配置
    • 1、将哨兵配置文件改为公用。mv 修改名字
      • 编写公用的配置
    • 2、创建三个私有的配置文件
    • 3、启动哨兵服务器
  • 四、主从服用-主备切换
    • 1.查看日志
    • 2、模拟服务器挂机的状态
      • 1.kill -9 master
      • 2.master哨兵日志信息:
    • 3、重启启动原来的master 6379
      • 1.6379发现是slave了
      • 2.现在的6381是master
    • 4、主从服务器,读写测试:
      • 1、主服务器 6381。读写都可以
      • 2、从服务器。只读
  • 五、集群

回顾内容:

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,那么就是进行插入第二个服务器当中。

在这里插入图片描述

这篇关于016-学习Redis-主从服用、哨兵、主备切换、集群概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!