关于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过期事件实现订单超时取消
May 08 Redis
详解Redis主从复制实践
May 19 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
详解Redis集群搭建的三种方式
May 31 Redis
详解Redis复制原理
Jun 04 Redis
Redis Cluster 集群搭建你会吗
Aug 04 Redis
SpringBoot整合Redis入门之缓存数据的方法
Nov 17 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
源码分析Redis中 set 和 sorted set 的使用方法
Mar 22 Redis
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 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引用效率问题分析
2012/03/23 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
一分钟理解js闭包
2016/05/04 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
python将文本转换成图片输出的方法
2015/04/28 Python
Python切片知识解析
2016/03/06 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
介绍一下gcc特性
2015/10/31 面试题
小区门卫值班制度
2014/01/24 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
3分钟演讲稿
2014/04/30 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
企业文明单位申报材料
2014/05/16 职场文书
学校宣传标语
2014/06/18 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
领导欢送会主持词
2015/07/06 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL