首页 技术 正文
技术 2022年11月6日
0 收藏 838 点赞 484 浏览 2784 个字

  首先我们配置一台master服务器,两台slave服务器。master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器。

两台slave服务器配置如下:    1.先找到配置redis.windows-service.config文件修改port 6379 为port 6380    2.然后配置master服务器地址:slaveof 127.0.0.1 6379,然后主服务有密码还需要配置密码 masterauth CeshiPassword(本人有密码)    3.启动从服务器的加上这个配置文件 redis-server redis.windows-service.config    4.然后在主服务器基本信息(info),可以看到如图,说明主从配置成功Redis——学习之路四(初识主从配置)    5.另一台slave服务器port修改为6381 其它配置一样Redis——学习之路四(初识主从配置)

下面我来简单的验证一下

  先连接master服务在服务器上set一个 name “hello world”,然后连接其中一台slave服务器get一下。

 Redis——学习之路四(初识主从配置)    这是master服务器的结果。Redis——学习之路四(初识主从配置)    这是slave服务器的结果。    我们看到slave有同步到master服务器set name的值,但是下面当我们想给slave服务器set时报错,这个是为了数据库同步才这样设置的。就是让用户不会误操作,导致数据库的不一致。当然这个设置在.conf里面的slave-read-only yes 这个我们上一章介绍过。    这样我们就完成就redis的主从配置,如果你还想要添加slave服务器就只需要按上面的步骤修改为不同的端口即可。下面我们来说明一下一个很严重的问题,如果某天出现master服务器宕机了那怎么办?master服务器宕机了,我们可以实际操作一下,会出现上面样的情况。  我们来关闭master服务器 Redis——学习之路四(初识主从配置),然后去slave服务器获取name 的值 发现依然可以正常获取。有一个问题现在我们虽然可以正常获取但是已经没有set的服务器了,就是说我们的服务器只能get不可以set。我们再查看slave服务infoRedis——学习之路四(初识主从配置)  可以看到maste_link_status状态是down,正常连接状态为up。如果遇到这么的情况我们应该怎么去处理呢?  我们是不是应该讲现在可以正常工作的两台slave服务选取一台变为master服务器好让redis正常工作。下面提供两种方法:    1.手动切换(slave到master)        首先这里选择6380服务器输入命令slaveof no one,意思就是告诉这台slave服务器已经没有master服务器了,你会成为master服务器。Redis——学习之路四(初识主从配置)  我们在这台服务器上输入info 查看 发现这台服务变成了masterRedis——学习之路四(初识主从配置)   接着我们要做的是将6381这台slave服务器指向6380这台masterRedis——学习之路四(初识主从配置)Redis——学习之路四(初识主从配置)Redis——学习之路四(初识主从配置)  这样我们就手动完成了master宕机到选择一台slave服务器为master服务器。有人一定会说让维护人员自己手动操作这不是耽误事情嘛,确实是这样如果mster需要我们手动去操作那用户早就跑光了。    2.自动切换(sentinel哨兵)    这是在redis2.4以后版本,redis作者antirez考虑到社区的需求写的一个自动维护工具名字叫redis-sentinel。在redis2.8与redis3.0时将sentinel2集成到了redis-server中,在redis2.8以前的版本可能你还是需要自己去下载源代码编译生成redis-sentinel然后使用。这里就不讲了,我们只说redis2.8这个版本的。首先我们需要去官方下载redis2.8对应版本的sentinel.conf,不要下载redis3.0,我就下载过,启动时报参数错误(如图下图)。Redis——学习之路四(初识主从配置)下载完成后我们先来看看sentinel有哪些我们去简单配置就能完成我们的业务需求的。第一个参数是主服务器的名称,然后是IP地址,端口号,以及需要几个sentinel选举,我们只运行了一个sentinel做简单选举。sentinel monitor <master-name> <ip> <redis-port> <quorum> sentinel monitor mymaster 127.0.0.1 6379 1  配置监控连接的密码,参数一:主服务器的名称,参数二:密码sentinel auth-pass <master-name> <password> sentinel auth-pass mymaster CeshiPassword 指定了Sentinel认为Redis实例已经失效所需的毫秒数,这里使用默认值30秒sentinel down-after-milliseconds <master-name> <milliseconds> sentinel down-after-milliseconds mymaster 30000 同时我们需要为slave服务器配置一下优先级,即当master宕机时谁被选定为新的master的优先级。我给6381端口的服务器设置了 slave-priority 1 slave优先级最高,给6380端口的服务设置了默认值100。也就是说当6379宕机时6380会被sentinel选举为master。现在我们先启动这个三台redis服务器,然后启动我们的sentinel服务输入命令 redis-server sentinel.conf –sentinelRedis——学习之路四(初识主从配置)上图可以看到sentinel监控了 127.0.0.1 6379 同时发现了 两台salve服务器 127.0.0.1 6380 与127.0.0.6381现在我们来关闭master这台服务器。Redis——学习之路四(初识主从配置)然后发现sentinel监控到了,通知他选举6380这个slave为master了。Redis——学习之路四(初识主从配置)Redis——学习之路四(初识主从配置)然后当我们重启127.0.0.1 6379 服务器时,发现它居然自动加入了到原来的集群中,自动成6381的slave服务器。Redis——学习之路四(初识主从配置)但是当我们查看info信息时发现只有一台slave服务Redis——学习之路四(初识主从配置)再查看6379服务的状态,连接状态是downRedis——学习之路四(初识主从配置)为什么呢?指定服务地址端口正确,对那就是密码不正确,查看配置信息果然我们重启的6379服务没有设置访问6381的密码。

Redis——学习之路四(初识主从配置)

设置密码 config set masterauth CeshiPassword ,查看6381slave服务信息 okRedis——学习之路四(初识主从配置)查看6379信息,如下图连接状态为up了Redis——学习之路四(初识主从配置)Redis——学习之路四(初识主从配置)

下一章将学习一下C#客户端如果调用redis。

下面是我前面写的redis学习记录Redis——学习之路三(初识redis config配置)Redis——学习之路二(初识redis服务器命令)Redis——学习之路一(初识redis)

以上是自己个人学习的记录,都是很简单的处理,初级的知识,如果有什么不对的地方请大家指正,欢迎评论!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,487
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,486
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,126
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289