关于Redis的主从复制及哨兵问题


Posted in Redis onJune 16, 2022

服务器配置

到这里关于redis的一些基本操作就学习完了,接下来我们就来看看redis中更加高级的部分,首先是配置文件中的配置信息。

配置项 说明
daemonize yes no
bind 127.0.0.1 绑定主机地址
port 6379 设置服务器端口号
databases 16 设置数据库数量
loglevel debug verbose
logfile 端口号.log 设置日志文件名
maxclients 0 设置同一时间最大客户端连接数,默认无限制,当客户端连接达到上限时,redis会关闭新的连接
timeout 300 客户端闲置等待最大时长,达到最大值后关闭连接,如需关闭该功能, 设置为0
include /path/server-端口号.conf 导入并加载指定配置文件信息,用于快速创建redis公共配置较多的redis实例配置文件,便于维护

主从复制

现在我们只是在使用一个redis,它就会出现一些问题,比如服务器宕机后,该服务器上的redis将无法提供服务,而此时应用又只有一个redis服务支撑,那么我们的业务将无法提供正常的服务,为了保证高可用,我们需要为redis搭建集群。

redis中以master为主机,slave为从机,一个master可以对应多个slave,而一个slave只能对应一个master。

那么首先我们需要建立slave到master的连接,使master能够识别slave,并保存slave的端口号,启动四个窗口模拟这一过程:

关于Redis的主从复制及哨兵问题

在6380服务和6381服务窗口分别开启6380端口、6381端口的redis服务,然后来到slave窗口:

redis-cli -p 6381
slaveof 127.0.0.1 6380

这里表示使用6381端口连接6380端口,作为它的从机,此时我们再来到master窗口,连接客户端:

redis-cli -p 6380
set name zs

会发现,slave窗口中6381端口的redis也能够获取到该数据,此时证明主从搭建好了。

我们也可以在启动redis服务的时候就进行连接:

redis-server redis-6381.conf --slaveof 127.0.0.1 6380

redis推荐使用配置文件的方式搭建主从结构,修改redis-6381.conf:

slaveof 127.0.0.1 6380

此时6381就成了6380的从机了。

哨兵

在主从的环境下也可能会产生问题,比如作为主机的master服务宕机了,此时作为它的从机都无法正常工作了,这个时候我们需要在slave中选出一个作为新的master,以支撑主从继续提供服务。

哨兵则是为了解决上述问题的,它是一个分布式的系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有的slave连接到新的master。

哨兵的启动方式如下:

redis-sentinel sentinel.conf

哨兵的客户端链接方式:

redis-cli -p 26379

需要注意的是哨兵客户端不支持数据操作,它只作监控用途。

到此这篇关于Redis的主从复制及哨兵的文章就介绍到这了,更多相关Redis主从复制内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
解决redis sentinel 频繁主备切换的问题
Apr 12 Redis
在K8s上部署Redis集群的方法步骤
Apr 27 Redis
redis通过6379端口无法连接服务器(redis-server.exe闪退)
May 08 Redis
redis内存空间效率问题的深入探究
May 17 Redis
Redis集群的关闭与重启操作
Jul 07 Redis
浅谈redis整数集为什么不能降级
Jul 25 Redis
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
Feb 12 Redis
Redis监控工具RedisInsight安装与使用
Mar 21 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
Redis批量生成数据的实现
Jun 05 Redis
Redis唯一ID生成器的实现
Jul 07 Redis
Redis实战之Lettuce的使用技巧详解
Dec 24 Redis
Redis实现分布式锁的五种方法详解
Redis实现短信验证码登录的示例代码
Jun 14 #Redis
Redis批量生成数据的实现
Jun 05 #Redis
Redis实现订单过期删除的方法步骤
Jun 05 #Redis
浅谈Redis缓冲区机制
Redis全局ID生成器的实现
Jun 05 #Redis
Redis keys命令的具体使用
Jun 05 #Redis
You might like
pw的一个放后门的方法分析
2007/10/08 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
举例介绍Python中的25个隐藏特性
2015/03/30 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
上海天奕面试题笔试题
2015/04/19 面试题
Ajax的工作原理
2015/12/04 面试题
毕业生自荐书
2013/12/18 职场文书
房地产开发计划书
2014/01/10 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015年新教师工作总结
2015/04/28 职场文书
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python