关于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 24 Redis
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
redis三种高可用方式部署的实现
May 11 Redis
详解redis分布式锁的这些坑
May 19 Redis
redis实现排行榜功能
May 24 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
springboot使用Redis作缓存使用入门教程
Jul 25 Redis
redis 存储对象的方法对比分析
Aug 02 Redis
Redis超详细讲解高可用主从复制基础与哨兵模式方案
Apr 07 Redis
Redis基本数据类型List常用操作命令
Jun 01 Redis
Redis配置外网可访问(redis远程连接不上)的方法
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
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
Python数据可视化图实现过程详解
2020/06/12 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
北大研究生linux应用求职信
2013/10/29 职场文书
企业门卫岗位职责
2013/12/12 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
社区活动总结范文
2015/05/07 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
赞美教师的句子
2019/09/02 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang