Redis| 主从读写分离

2019年8月24日 0 条评论 2.91k 次阅读 1 人点赞

Redis主从读写分离前言

在Web开发领域,其实网上很多文章都介绍到了,造成并发负载的情况一般不是web服务器自身.......(PS:Nginx表示:我可不背这个锅........让数据库去背)......因此说到底的,并发负载的主要原因还是在于服务器上的数据库的读写能力,当然,如果是云计算服务器等,可以弹性的扩展CPU和SSD磁盘与内存等以及页面静态化处理方式和缓存处理........等等方式,本文就不再提了~

本文章主要介绍如何进行Redis的主从配置

首先第一个问题:何为主从?其实主从就是拥有若干台服务器,一台作为主服务器,另几台作为slave服务器(即:奴隶服务器——从服务器)。

主服务器负责存入数据的功能,而slave从服务器负责同步主服务器上的数据,并且提供读取数据的功能(注:从服务器一般不提供写入用户数据的功能,写入数据的功能一般由主服务器完成,然后同步给从服务器)。

如下图所示:

这时:有朋友可能就会问了.......这样做的好处在于哪里?

其实这个答案已经很明显了,数据库最常用的是查询数据功能,高并发查询是数据库并发负载的主要原因,增加从服务器用来均衡查询带来的服务器压力,可以保证服务器不会宕机,并且其具有一定的突发情况时的容灾处理,比如服务器断电,物理破坏等导致数据丢失,如果我们是主从形式的数据库服务器,我们还能保证数据多份备份。

准备工作我们预先做好:(具体redis的安装,可以参考我之前的几篇文章~)

准备虚拟机两台,配置好ip,安装相同版本的redis数据库客户端及服务端

且这两台虚拟机之间需要保证互相ping通,处于内网环境

主服务器IP:192.128.92.131

从服务器IP:192.128.92.132

一、首先是从服务器配置

先进入从服务器里的redis配置项,找到redis.conf文件并打开编辑

注意:如果你的从服务器中redis先前设置了密码,请把它注释掉!因为会与上边的配置起冲突(如图下图所示)

如果你找不到有关于 slaveof 配置,请在配置文件中搜索 replicaof

由于redis 版本不同,导致配置文件将会有小小误差。但是原理配置都是一样的。

二、开始配置主服务器

配置好从服务器的内容后,我们打开主服务器的配置项,同理(redis.conf文件)

redis安装好后默认是没有设置密码的,我们先将主服务器上的redis上配置密码为123456

如下图所示:主服务器的密码配置

配置完密码,开始配置开放ip(如下图所示)

网上有很多朋友喜欢把它配置为:bind 0.0.0.0

其实做这实验的情况下是可以配置成这样的,项目上线千万别这么用就行了

此时配置完成,我们还不一定能访问,我们还需要注释一个东西(在主服务器上找到这个配置,并把它注释掉)

没有注释这个玩意儿,由于配置内容的顺序原因,可能会导致从服务器连接主服务器失败:例如以下的报错


配置从服务器只读权限(注:需要在主服务器中配置)

到了这里我们也就大功告成了,我们按顺序重启redis

先重启主服务器,再重启从服务器

从服务器下输入命令(尝试连接主服务器)

redis-cli -h 192.168.92.131 -p 6379 -a 123456

参数介绍:-h 为主机地址 -p端口号 -a 主机密码

看到此时这个场景,恭喜你连接成功了

此时如果你set一个值,会显示ok,这是因为,你用密码在从服务器上登录了主服务器,所以从服务器也会有写入数据的权限,你只需要exit退出数据库不要输入密码登录就可以了

如图所示:不用密码登录

一但登录,我们返回主服务器,在redis客户端界面输入命令:如图所示

命令:info的功能是返回redis信息,数值信息如下图所示

当你看到connected_slaves这个参数为1时,代表主从配置成功

此时你在主服务器下设置一个数据,从服务器便能自动进行同步备份,并且从服务器没有写入权限。

兰陵美酒郁金香

大道至简 Simplicity is the ultimate form of sophistication.

文章评论(0)

你必须 登录 才能发表评论