1.复制

  完整重同步,从服务器完全复制主服务器的数据,主要通过RDB文件和单条命令传输(套接字连接)。

  部分重同步,主服务器进行命令传播的时候,不仅会把写命令发送给从服务器,而且还会把写命令放入复制积压缓冲区中,当主从服务器连接断开又重新连接上的时候,从服务器向主服务器发送PSYNC命令(参数包括复制偏移量服务器运行ID)请求同步,主服务器根据复制偏移量和服务器运行ID向从服务器回复(只有当服务器运行ID与主服务器相同,复制偏移量在复制积压缓冲区中能找到才进行部分重同步)。

2.Sentinel

  监视系统,是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成,负责监视所有的主服务器及其从服务器,当主服务器下线之后,Sentinel会从下线主服务器的从服务器中选择一个作为新的主服务器。

  Sential通过命令连接发送信息到频道,通过订阅连接从频道接收信息

  主观下线:Sentinel向服务器发送PING命令得到无效回复,则Sentinel判定该服务器主观下线。

  客观下线:Sentinel向其他连接该主观下线服务器的Sentinel询问,如果回复结果中判定下线(包括客观和主观下线)的数量达到一定程度就判定该服务器客观下线。

  选择领头Sentinel、选择新的主服务器

3.集群(Redis Cluster)

  节点:一个节点就是一个运行在集群模式下的Redis服务器,会继续使用所有在单机模式中使用的服务器组件。每个节点都会使用clusterNode的数据结构来保存自己的状态,也会为其他节点创建一个对应的clusterNode的数据结构来保存其他节点的状态。

  槽:集群的整个数据库被分为16384个槽(slot),集群中的每一个节点可以处理0~16384个槽,当数据库中的16384个槽都有节点在处理时,集群处于上线状态(ok),否则处于下线状态(fail)。clusterNode结构中会记录节点负责处理哪些槽,clusterState结构中会记录16384个槽的指派信息。CRC16然后模16384取余计算键属于哪一个槽。

  对于Redis集群技术还有:客户端分片、代理分片(Twemproxy)

Redis学习笔记之多机数据库的更多相关文章

  1. Redis学习笔记(七) 数据库

    Redis 服务器将所有的数据库都保存在服务器状态redisServer结构的db数组中,db数组的每个项都是一个redisDB: struct redisServer{ //一个数组保存着服务器中的 ...

  2. Redis学习笔记二:单机数据库的实现

    1. 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个r ...

  3. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  4. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  5. redis学习笔记(3)

    redis学习笔记第三部分 --redis持久化介绍,事务,主从复制 三,redis的持久化 RDB(Redis DataBase)AOF(Append Only File) RDB:在指定的时间间隔 ...

  6. redis学习笔记(2)

    redis学习笔记第二部分 --配置文件介绍 二,解析redis的配置文件redis.conf常见配置参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通 ...

  7. Redis学习笔记4-Redis配置具体解释

    在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...

  8. redis学习笔记(详细)——高级篇

    redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...

  9. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

随机推荐

  1. MySQL面试题之如何优化一条有问题的SQL语句?

    如何优化一条有问题的sql语句? 针对sql语句的优化.我们可以从如下几个角度去分析 回归到表的设计层面,数据类型选择是否合理 大表碎片的整理是否完善 表的统计信息,是不是准确的 审查表的执行计划,判 ...

  2. 在同一个服务器(同一个IP)为不同域名绑定的免费SSL证书

    越来越多的浏览器不在支持http协议了,这就要求你为你的网站必须绑定SSL证书.谷歌浏览器也将要在今年取消对http协议的支持,申请CA证书迫在眉睫.我购买有两个域名,一个虚拟机,没事鼓捣鼓捣,图个乐 ...

  3. Markdown图片存储解决方法-利用阿里云OSS

    我们在用markdown写一些博客或者文章的时候,常常需要引用一些图片,一般都是找一个免费的图床上传,然后复制图片链接在我们的markdown文章中.类似像这样: 存在的隐患 一般的免费图片托管网站有 ...

  4. <20190102>收录些比较低级错误导致的主板故障现象

    今天收录俩个比较低级的错误. 故障现象:   水冷排风扇高速运转, 并无法调控. 现在CPU散热的水冷排都设计了三条线,   温控4Pin , 水泵线 3Pin  , 接在机箱上USB口取电的灯线或者 ...

  5. Installation Oracle11gR2 RAC---常见报错处理

    第六章.报错处理 6.1 root.sh脚本执行失败处理 安装grid时,执行rootsh脚本报错如下: Adding Clusterware entries to inittab USM drive ...

  6. IDEA(jetbrain通用)优雅级使用教程(转)

    文章转自  http://www.jianshu.com/p/3160ff832a9b 前面写过一篇IDEA的入门级文章,但是只学会了那些配置啊什么的并不能提高我们的开发效率.事实上,如果你IDEA用 ...

  7. node学习之cookie和session

    c什么是cookie Cookie设计的初衷是 维持浏览器和服务端的状态.http是无状态的,服务端不能跟踪客户端的状态. 浏览器第一次向服务器发送请求,服务器会返回一个cookie给客户端浏览器,浏 ...

  8. Qt+QGis二次开发:打开S-57格式(*.000)电子海图数据,并设置多边形要素的显示风格

    不过多的废话了,直接上源码: addChartlayers()方法时“打开海图”按钮的triggered()信号所绑定的槽函数. //添加海图数据小按钮槽函数 void MainWindow::add ...

  9. 安装win10操作系统的设备将要突破10亿台

    导读 该公司最初的目标是在发布后的三年内在 10 亿台设备上运行 Windows 10. 据微软高管梅赫迪 (Yusuf Mehdi) 周四在 Twitter 上透露,目前已经有 8 亿多台设备安装了 ...

  10. Echo团队Alpha冲刺随笔 - 第四天

    项目冲刺情况 进展 前端:完成了差不多一半,小程序部分界面基本完工,WEB端也完成了一部分 后端:也完成了大半了 问题 后端文件上传还没解决 心得 进度还行,团队配合都还不错 今日会议内容 黄少勇 今 ...