关于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遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 Redis
使用Redis实现秒杀功能的简单方法
May 08 Redis
基于Redis过期事件实现订单超时取消
May 08 Redis
Redis 哨兵集群的实现
Jun 18 Redis
解析高可用Redis服务架构分析与搭建方案
Jun 20 Redis
Redis 彻底禁用RDB持久化操作
Jul 09 Redis
厉害!这是Redis可视化工具最全的横向评测
Jul 15 Redis
Redis高并发防止秒杀超卖实战源码解决方案
Nov 01 Redis
redis中lua脚本使用教程
Nov 01 Redis
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
Feb 12 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
Redis入门基础常用操作命令整理
Jun 01 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
php PDO属性设置与操作方法分析
2018/12/27 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
jQuery使用方法
2017/02/04 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
python实现简单银行管理系统
2019/10/25 Python
pygame实现成语填空游戏
2019/10/29 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Python类及获取对象属性方法解析
2020/06/15 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
八年级生物教学反思
2014/01/22 职场文书
高一新生军训感言
2014/03/02 职场文书
建筑工地标语
2014/06/18 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
公司行政管理制度范本
2015/08/05 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
vue使用echarts实现折线图
2022/03/21 Vue.js