Redis学习笔记之多机数据库
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学习笔记之多机数据库的更多相关文章
- Redis学习笔记(七) 数据库
Redis 服务器将所有的数据库都保存在服务器状态redisServer结构的db数组中,db数组的每个项都是一个redisDB: struct redisServer{ //一个数组保存着服务器中的 ...
- Redis学习笔记二:单机数据库的实现
1. 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个r ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- redis学习笔记(3)
redis学习笔记第三部分 --redis持久化介绍,事务,主从复制 三,redis的持久化 RDB(Redis DataBase)AOF(Append Only File) RDB:在指定的时间间隔 ...
- redis学习笔记(2)
redis学习笔记第二部分 --配置文件介绍 二,解析redis的配置文件redis.conf常见配置参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通 ...
- Redis学习笔记4-Redis配置具体解释
在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...
- redis学习笔记(详细)——高级篇
redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
随机推荐
- Categories VS Extensions (分类 vs 扩展)
转载翻译自:http://rypress.com/tutorials/objective-c/categories 一.Categories(分类) Categories是一个把单个类定义分 ...
- 个人技术博客Alpha----Android Studio UI学习
项目联系 这次的项目我在前端组,负责UI,下面简略讲下学到的内容和使用AS过程中遇到的一些问题及其解决方法. 常见UI控件的使用 1.TextView 在TextView中,首先用android:id ...
- Alpha冲刺! Day8 - 砍柴
Alpha冲刺! Day8 - 砍柴 今日已完成 晨瑶:写了部分gitkraken团队协作教程:讨论关于继承baseActivity因为需要参数无法通过override去实现函数,并且initData ...
- cesium相机绕点飞行
相机绕点飞行原理就是获取相机参数与点位置信息,添加时间监听,一直去改变相机的heading,关键代码如下: function rotateHeading() { // 相机的当前heading var ...
- [NOIP 2015]运输计划-[树上差分+二分答案]-解题报告
[NOIP 2015]运输计划 题面: A[NOIP2015 Day2]运输计划 时间限制 : 20000 MS 空间限制 : 262144 KB 问题描述 公元 2044 年,人类进入了宇宙纪元. ...
- UVA1103-Ancient Messages(脑洞+dfs)
Problem UVA1103-Ancient Messages Accept: 1176 Submit: 6103 Time Limit: 3000 mSec Problem Descriptio ...
- explan各项说明
explain select * from user explain extended select * from user id SELECT识别符.这是SELECT的查询序列号 select_ty ...
- ECS API
一.API调用方式 ➢对ECS API接口调用是通过向ECS API的服务端地址发送HTTP GET请求,并按照接口说明在请求 中加入相应请求参数来完成的;根据请求的处理情况,系统会返回处理结果. ➢ ...
- python3 列表的赋值和深浅拷贝
'''列表赋值:不会创建新对象两个列表的内存地址一样'''# lst1 = ["apple", "banana", ["blueberry" ...
- Struts 2.5.20 在Eclipse IDE中的配置和开发实例
零.参考博客1.Struts框架入门教程2.Struts 2.5.10.1配置 3.eclipse中搭建Struts2.5.16 4.Struts2.5+eclipse+tomcat8.5配置 注意: ...