关于Redis的主从复制及哨兵问题
目录
- 服务器配置
- 主从复制
- 哨兵
服务器配置
到这里关于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的端口号,启动四个窗口模拟这一过程:
在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 哨兵集群的实现
目录 1.Sentinel 哨兵 2.Redis 主从分离 一.配置Master 二.配置Slave 1.在配置文件中配置从服务 2.在服务启动后设置 3.总结 3.Sentinel 哨兵 1.配置端口 2.配置主服务器的ip 和端口 3.启动Sentinel 4.关闭Master 5.重连Master 4.Sentinel 总结 一.Sentinel的作用: 二.Sentinel的工作方式: 1.Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Se
-
Redis主从复制详解
单机Redis存在的问题 无法故障转移 ,无法避免单点故障 磁盘空间的瓶颈 QPS瓶颈 Redis主从复制的作用 提供数据副本 扩展读性能 配置方法 通过命令 通过配置文件 演示 为方便演示,在一台服务器上搭建redis主从(生产上不会这样做),根据端口区分. 主库 6379 从库 6380 编辑配置文件 vi redis-6379.conf #后台进程启动 daemonize yes #端口 port 6379 #日志文件名称 logfile "6379.log" #Redis工作
-
Redis教程(九):主从复制配置实例
一.Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了.相信在阅读完这篇Blog之后你也可以轻松做到.这里我们还是先列出一些理论性的知识,后面给出实际操作的案例. 下面的列表清楚的解释了Redis Replication的特点和优势. 1). 同一个Master可以同步多个Slaves. 2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力.因此我们可以将Redis的R
-
浅谈Redis主从复制以及主从复制原理
面临问题 1. 机器故障.我们部署到一台 Redis 服务器,当发生机器故障时,需要迁移到另外一台服务器并且要保证数据是同步的.而数据是最重要的,如果你不在乎,基本上也就不会使用 Redis 了. 2. 容量瓶颈.当我们有需求需要扩容 Redis 内存时,从 16G 的内存升到 64G,单机肯定是满足不了.当然,你可以重新买个 128G 的新机器. 解决办法 要实现分布式数据库的更大的存储容量和承受高并发访问量,我们会将原来集中式数据库的数据分别存储到其他多个网络节点上.Redis 为了解决这个
-
Redis哨兵模式介绍
哨兵简介 主机"宕机" 将宕机的 master 下线 找一个 slave 作为 master 通知所有的 slave 连接新的 master 启动新的 master 和 slave 全量复制 *N+ 部分复制*N 存在的问题: 谁来确认 master 宕机了 重新找一个新的 master ,怎么找法? 修改配置后,原来的 master 恢复了怎么办? 哨兵 哨兵(sentinal)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master 并
-
Redis超详细讲解高可用主从复制基础与哨兵模式方案
目录 高可用基础---主从复制 主从复制的原理 主从复制配置 示例 1.创建Redis实例 2.连接数据库并设置主从复制 高可用方案---哨兵模式sentinel 哨兵模式简介 哨兵工作原理 哨兵故障修复原理 sentinel.conf配置讲解 哨兵模式的优点 哨兵模式的缺点 高可用基础---主从复制 Redis的复制功能是支持将多个数据库之间进行数据同步,主数据库可以进行读写操作.当主数据库数据发生改变时会自动同步到从数据库,从数据库一般是只读的,会接收注数据库同步过来的数据. 一个主数据库可
-
Redis主从复制问题和扩容问题的解决思路
一.解决主从复制问题 当使用Redis作为存储引擎的时候,并且使用Redis读写分离,从机作为读的情况,从机宕机或者和主机断开连接都需要重新连接主机,重新连接主机都会触发全量的主从复制,这时候主机会生成内存快照,主机依然可以对外提供服务,但是作为读的从机,就无法提供对外服务了,如果数据量大,恢复的时间会相当的长.为了解决Redis主从Copy的问题,有如下两个解决方案: 主动复制所谓主动复制,就是业务层双写多个Redis,避开Redis自带的主从复制.但是自己干同步,就会产生一致性问题,为了保证
-
关于Redis的主从复制及哨兵问题
目录 服务器配置 主从复制 哨兵 服务器配置 到这里关于redis的一些基本操作就学习完了,接下来我们就来看看redis中更加高级的部分,首先是配置文件中的配置信息. 配置项 说明 daemonize yes no bind 127.0.0.1 绑定主机地址 port 6379 设置服务器端口号 databases 16 设置数据库数量 loglevel debug verbose logfile 端口号.log 设置日志文件名 maxclients 0 设置同一时间最大客户端连接数,默认无限制
-
Redis 单机安装和哨兵模式集群安装的实现
目录 前言: 1.Redis单机版安装 1.1:下载安装包 1.2:解压安装包 1.3:执行make命令,编译redis代码 1.4:安装并指定安装目录 1.5:配置环境变量 1.6:让redis作为服务进行后台启动 1.7:redis关闭服务 2.Redis 集群版安装 2.1:基本的集群拓扑图如下 2.2:修改redis-sentinel的配置文件 sentinel.conf 2.4:分别启动 redis-1,redis-2,redis-3 服务 2.5:分别启动 sentinel-1, s
-
Redis6 主从复制及哨兵机制的实现
目录 Redis 主从复制 什么是主从复制 主从配置 主Redis配置 从Redis配置 实现原理 Redis 哨兵机制 简介 哨兵进程的作用 故障判定原理分析 自动故障迁移 案例演示 Redis 主从复制 什么是主从复制 如果单机情况下,机器重启,内存数据丢失,如何保证数据的高可用呢?持久化方案如果机器硬盘坏掉,如何保证数据的高可用呢?主从复制Redis的主从机制:主负责读写,从一般只读不能写(客户端). 持久化保证了即使 Redis 服务重启也不会丢失数据,因为 Redis 服务重启后会将硬
-
Docker下Redis集群(主从+哨兵)安装配置的实现步骤
目录 一.所有机器拉去镜像 二.主从集群搭建 2.1.redis.cong 文件 2.2.创建本地映射文件夹,并将 redis.conf 放到 /usr/local/redis/conf 文件夹内 2.3.启动redis 2.4.校验redis主从集群安装是否成功 三.开启哨兵模式 3.1.sentinel.conf 配置文件 3.2.创建本地映射文件夹,并将 sentinel.conf 放到 /usr/local/redis-sentinel/conf 文件夹内 3.3.启动 redis-se
-
Redis实现主从复制方式(Master&Slave)
目录 主从复制方式(Master&Slave) 一.Master&Slave是什么? 二.它能干嘛? 三.怎么玩? 四.复制原理 五.哨兵模式(sentinel) 六.复制的缺点 Redis master, slave节点部署详解 主从复制方式(Master&Slave) 由于前段时间公司项目比较赶,一直抽不出时间写博客,今天偷空写一篇吧.前面给大家讲解了单机版redis的基本操作,现在继续给大家讲解一下Redis的进阶部分,主从复制和读写分离. 一.Master&Slav
-
Java使用Lettuce客户端在Redis在主从复制模式下命令执行的操作
1 redis主从复制的概念 多机环境下,一个redis服务接收写命令,当自身数据与状态发生变化,将其复制到一个或多个redis.这种模式称为主从复制.在redis中通过命令salveof命令让执行该命令的redis复制另一个redis数据与状态.我们将主服务器称为master,从服务器称为slave. 主从复制保证了网络异常正常时,网络断开重的情况下将数据复制.网络正常时master会通过发送命令保持对slave更新,更新包括客户端的写入,key的过期或被逐出等网络异常,master与slav
-
基于Docker搭建Redis一主两从三哨兵的实现
这段时间正在学习Redis和容器相关的内容,因此想通过docker搭建一套redis主从系统来加深理解.看这篇文章可能你需要一定的docker基础,以及对redis主从和哨兵机制有所了解. 这次实验准备了三台云主机,系统为Debian,ip分别为: 35.236.172.131 , 35.201.200.251, 34.80.172.42. 首先分别在这三台主机上安装docker,然后每台主机上启动一个redis容器,运行redis-server服务,其中35.236.172.131作为mast
-
Redis哨兵模式实现一主二从三哨兵
目录 一.redis环境: 二.哨兵介绍: 三.安装redis: 四.使用Redis主从复制的作用: 五.配置redis一主二从: 六.配置redis三哨兵: 一.redis环境: 环境:redis6.2.6linux虚拟机一台,contos7: 二.哨兵介绍: 1.一主二从三哨兵理论图: 一主两从三哨兵集群,当master节点宕机时,通过哨兵(sentinel)重新推选出新的master节点,保证集群的可用性. 2.哨兵的主要功能:1.集群监控:负责监控 Redis master 和 slav
-
Redis sentinel哨兵集群的实现步骤
目录 一.Redis sentinel哨兵集群概述 (1)Redis哨兵概述 (2)Redis哨兵的工作机制 (3)哨兵的三个定时监控任务 二.部署Redis哨兵系统 (1)实验环境 (2)实验步骤 -在每台服务器上都安装Redis 一.Redis sentinel哨兵集群概述 (1)Redis哨兵概述 *Sentinel 哨兵:这是一个分布式系统,该进程是用于监控Redis集群中Master主服务器的工作状态,在Master主服务器发生故障时,可以实现Master和Slave服务器的秒级切换,
随机推荐
- asp.net对URL含有中文参数的转换
- python的几种开发工具介绍
- JS制作简单的三级联动
- SQL2000中的默认sa帐号的修改与删除方法
- 金山反病毒20041226_日报
- ASP.NET记录错误日志的实现方法
- Javascript 事件捕获的备忘(setCapture,captureEvents)
- js二维数组排序的简单示例代码
- C# DataTable的详细用法分享
- springboot集成mybatis实例代码
- HTML颜色选择器实现代码
- jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
- jquery 1.3.2 IE8中的一点点的小问题解决方法
- 图片动画横条广告带上下滚动可自定义图片、链接等等
- c#使用DotNetZip封装类操作zip文件(创建/读取/更新)实例
- Android中获取电池电量实例代码
- 第1次亲密接触PHP5(2)
- PHP脚本的10个技巧(4)
- php cookis创建实现代码
- java集合中的list详解