关于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如何一键部署脚本
Apr 12 Redis
Redis6.0搭建集群Redis-cluster的方法
May 08 Redis
Redis集群新增、删除节点以及动态增加内存的方法
Sep 04 Redis
关于使用Redisson订阅数问题
Jan 18 Redis
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
Feb 12 Redis
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
Feb 12 Redis
Redis+Lua脚本实现计数器接口防刷功能(升级版)
Feb 12 Redis
解决redis批量删除key值的问题
Mar 23 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
Redis唯一ID生成器的实现
Jul 07 Redis
Redis Lua脚本实现ip限流示例
Jul 15 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 HTML代码串 截取实现代码
2009/06/29 PHP
PHP学习 变量使用总结
2011/03/24 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JS的数组迭代方法
2015/02/05 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python实现CET查分的方法
2015/03/10 Python
python多进程共享变量
2016/04/06 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
个人教师自我评价范文
2013/12/02 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
写给女生的道歉信
2014/01/08 职场文书
八年级英语教学反思
2014/01/09 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
五年级学生评语大全
2014/12/26 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
同学聚会邀请函
2015/01/30 职场文书
庭外和解协议书
2016/03/23 职场文书