redis复制

作者: 小鱼嘻嘻 | 来源:发表于2017-05-11 21:37 被阅读30次

1 前期需要了解的一些知识
1.1 redis在Mac下的安装
简单来说就一个命令 brew install redis,具体如何安装请参考 http://www.jianshu.com/p/6b5eca8d908b
1.2 redis 的启动
redis 启动分为服务器启动和客户端启动。
1.2.1redis服务器的启动:
redis-server + 【对应的配置文件】 +【&】 后台启动

image.png

1.2.2 redis客户端的启动:
redis-cli + 【host】 + 【port】

image.png

1.3 为什么需要复制?怎么才能产生复制?
因为有单点问题,所有需要主从,有了主从就需要数据的同步,所有就有了复制。需要注意的是主从不能保证高可用,思考如何实现高可用?
产生复制很简单,也是一个命令slaveof

image.png

其他的主从关系可以通过修改配置文件:http://www.cnblogs.com/liuling/p/2014-4-19-02.html
前期准备已经完事了,直奔主题了。
2 redis 复制
首先,要讲的是redis版本为2.8以前的复制功能。redis2.8以前的复制主要包括两个步骤:
2.1 sync
sync的操作主要是:

WechatIMG179.jpeg

sync演示:

WechatIMG181.jpeg

2.2 命令传播
sync之后主从服务器确实能够达到一致状态,但是有一个问题达到一致状态之后,如果主服务器执行了一个删除命令,此时就会再次造成主从服务器不一致的情况,如何解决这个问题呢?就需要命令传播机制了,主服务器将自己执行的写操作命令发送给从服务器,使得主从再次达到一致状态。


WechatIMG182.jpeg

旧版本的复制功能有什么问题呢?
当旧版本的复制时候出现了断电或者网络超时等情况,效率会很低下,原因是这样的。
主要是因为旧版本复制在执行完sync之后,会执行命令传播,然而在命令传播的过程中如果发生了网络中断等情况的时候,
就需要重新执行sync,sync命令是很耗内存和CPU的,就相当于没有记录网络中断的点,因此效率很低下。

WechatIMG183.jpeg

3 新版本的部分同步功能
3.1 为了解决旧版本同步效率低下,引入psync,在pync之前,需要了解三个概念
3.1.1 offset 偏移量
表示主服务器的复制偏移量和从服务器的复制偏移量,简单理解就是记录每次复制的起点位置,当主服务器每次向从服务器传播n个字节的数据时,就将自己的复制偏移量加n,从服务器接受到主服务器发送过来的n个字节就将自己的偏移量也移动n个位置,但是这里也有一个问题是,如果我们的某一台从服务器断线了,主服务器如何重新同步自己的数据给从服务器呢?
3.1.2 复制积压缓冲器
复制积压缓冲器是一个长度固定的先进先出的队里,并且这个队列的长度是固定(默认为1m),每次当主服务器给从服务器发送命令的时候也会给自己的复制积压缓冲器写一份数据,并且复制积压缓冲区会把offset记录下来。这个复制积压缓冲区需要根据每秒写的数量和断开重连的时间来设置 当某一次复制断开以后,从服务器发送psync和自己的offset之后,主服务会根据偏移量去复制积压缓存区找,如果存在的话,回复从服务器开始部分同步模式。因为从服务可能不止一个,因此在同步的时候我们需要引入另外一个东西,机器号,根据机器号可以进行主从服务器的匹配。
3.1.3 机器号 runid
服务器运行的机器号,因为新版同步的时候,主服务器会将自己的机器号发给从服务器,当断线之后从服务器再次向主服务器请求同步的时候会带着主服务器给他的主服务器的机器号。从这个角度也能推算出这次同步是sync还是psync.

WechatIMG184.jpeg

相关文章

  • Redis主从复制

    Redis主从复制 一.主从复制介绍 1.Redis复制功能介绍 1)Redis 使用异步复制。从 Redis2....

  • redis主从复制和sentinel

    redis 主从复制 一. 复制 Redis 的复制(replication)功能允许用户根据一个 Redis服务...

  • redis-cluster 集群搭建方案

    下载redis 源码包,编译安装redis 修改redis 参数 复制几个不同的redis 服务节点 修改复制的服...

  • Redis|主从复制与哨兵机制

    1. Redis主从复制 1.1 Redis主从复制 Redis主从复制主要有两个角色,主机(master)对外提...

  • 【Redis学习笔记】13 Redis 主从复制

    1. Redis 主从复制特性 2. Redis 主从复制流程 3. Redis 主从复制操作 IP地址端口角色1...

  • Redis的复制(Master | Slave)

    Redis的复制(Master | Slave) 1.Redis复制简介 行话:也就是我们所说的主从复制,主机数据...

  • Redis复制

    1、redis复制是什么? redis复制,也就是我们所说的主从复制(master/slaver机制)。根据配置和...

  • k3s operator 方式 安装 redis 无中心集群

    redis有单机,复制,分片这几种方式 复制就是把一个redis的数据,复制到另外一个redis, 分片就是把ke...

  • redis(二)

    Redis用户认证 禁用危险命令 主从复制的过程 主从复制的部署 哨兵 Redis哨兵+主从+密码 Redis哨兵...

  • redis设计与实现-复制

    复制 redis主从集群使用复制功能实现,复制有如下特性 redis 2.8以前的复制功能不能高效地处理断线后重复...

网友评论

    本文标题:redis复制

    本文链接:https://www.haomeiwen.com/subject/ogjatxtx.html