假如把Redis服务器们拉到一个群,看看他们是怎么工作的?
我是Redis,一个叫Antirez的男人把我带到了这个世界上。
那天,Redis基友群里,许久未见的大白发来了一条消息···
于是,大白拉了一个新的群
以后的日子中,咱们哥仨相互配合,日常工作中最多的就是数据同步了
如果主节点有数据写入、删除、修改命令,也会把这些命令挨个通知到从节点,我们把这叫做命令传播。
通过这样的方式,我们主节点与从节点之间数据就能保持同步了~
有一次,我不小心掉线了~
我们用上了新的数据同步策略,效率高了不少,就算偶尔掉个线,也能很快把缺失的数据给补上。
就这样过了一段时间···
新添了人手,我们准备大干一场!
为了及时获得和更新主从节点的信息,咱们哨兵每隔十秒钟就要用INFO命令去问候一下主节点,主节点会告诉我他有哪些从节点
为了更加及时知道大家是否掉线,咱们哨兵每隔一秒都要用PING命令问候一下群里的各个小伙伴:
如果在设置的时间里没有收到回复,我就知道这家伙多半是跪了,就该启动故障转移了
不过这只是我的主观意见,光我一个人说了不算,为了防止误判,我还得去管理员小群里征求一下大家的意见:
接下来,咱们就开始了第一次选举。
经过一番努力,我终于完成了故障转移,现在R2是主节点了。
不过没过多久,R1又回来了:
以上就是我们的日常工作了,通过咱们几个小伙伴的齐心协力,构成了一个高可用的缓存服务,MySQL大哥再也不敢小瞧我们了。
【完】
往期TOP5文章
假如把Redis服务器们拉到一个群,看看他们是怎么工作的?的更多相关文章
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- redis服务器
Redis是一个Key-Value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 string(字符串 ). list(链表). set(集合)和 zset(有序集合). ...
- Python/dotNET Redis服务连接客户端调用SET方法的同时获取Redis服务器返回的内容
在用Python或dotNET redis客户端连接redis服务器的时候,当你调用客户端的SET方法后同时还想得到其返回的字符串,那么需要处理一下. 1. Redis Python redis客户端 ...
- 这几天对Redis的初探,写一个阶段性的东西
原来基于wcf写了一个交互框架,其中自定义了一个session队列,用于保存客户端连接的一些信息. 这几天在想如何将这个wcf框架做负载均衡,于是将session队列拆分出来,用一个共享的内存进行处理 ...
- Redis服务器的启动过程分析
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/127.html?1455808771 本文将通过分析代码来介绍Redis的 ...
- [Azure] 使用 Azure 快速搭建 Redis 服务器
Redis相信玩开源,大数据的朋友们并不陌生,大家最熟悉的使用者就是新浪微博,微博的整体数据缓存都是基于Redis的,而新浪对Redis的使用也非常深,据说是一组64G内存的Redis集群.前段时间我 ...
- Redis 服务器
Redis 服务器命令主要是用于管理 redis 服务. 实例 以下实例演示了如何获取 redis 服务器的统计信息: redis 127.0.0.1:6379> INFO # Server r ...
- php的redis 操作类,适用于单台或多台、多组redis服务器操作
redis 操作类,包括单台或多台.多组redis服务器操作,适用于业务复杂.高性能要求的 php web 应用. redis.php: <?php /* redis 操作类,适用于单台或多台. ...
- 如何在 CentOS 7 上安装 Redis 服务器
大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就 ...
随机推荐
- Kafka和RocketMQ底层存储之那些你不知道的事
大家好,我是yes. 我们都知道 RocketMQ 和 Kafka 消息都是存在磁盘中的,那为什么消息存磁盘读写还可以这么快?有没有做了什么优化?都是存磁盘它们两者的实现之间有什么区别么?各自有什么优 ...
- py004.python的逻辑运算,随机数及判断语句if,elif,else
判断语句又称 "分支语句" if判断语句的格式: if 条件1: 条件1满足时,执行的代码 -- # 前面有缩进4个空格 elif 条件2: 条件2满足时,执行的代码 -- # 前 ...
- Regression trees树回归 以及其他
https://www.cnblogs.com/wuliytTaotao/p/10724118.html 选 weighted variance 最小的 但是weighted variance是怎么计 ...
- linux应用-线程操作
文章写得好,转载一下, https://blog.csdn.net/triorwy/article/details/80380977
- Java知识系统回顾整理01基础05控制流程04 for
一.for 比较for和while public class HelloWorld { public static void main(String[] args) { //使用while打印0到4 ...
- 跟我一起学Redis之五种基本类型及其应用场景举例(干了6个小时)
前言 来啦,老弟?来啦,上一篇就当唠唠嗑,接下来就开始进行实操撸命令,计划是先整体单纯说说Redis的各种用法和应用,最后再结合代码归纳总结. Redis默认有16个数据库(编号为0~15),默认使用 ...
- golang常用库:配置文件解析库-viper使用
一.viper简介 viper 配置解析库,是由大神 Steve Francia 开发,他在google领导着 golang 的产品开发,他也是 gohugo.io 的创始人之一,命令行解析库 cob ...
- RHSA-2017:2299-中危: NetworkManager 和 libnl3 安全和BUG修复更新(本地提权、代码执行)
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...
- XML流操作
/// <summary> /// 保存XML为指定格式 /// </summary> /// <param name=& ...
- 拉格朗日乘子法与KKT条件
拉格朗日乘子法 \[min \quad f = 2x_1^2+3x_2^2+7x_3^2 \\s.t. \quad 2x_1+x_2 = 1 \\ \quad \quad \quad 2x_2+3x_ ...