美文网首页
redis的主从复制

redis的主从复制

作者: cammsia | 来源:发表于2016-09-21 09:21 被阅读43次

如何主从复制

向redis服务器发送下面的命令
127.0.0.1:12345> slaveof 127.0.0.1:6379
那么127.0.0.1:12345将成为127.0.0.1:6379的从服务器,也就是说127.0.0.1:6379是127.0.0.1:12345的主服务器。
redis和mysql一样,也是异步复制。

redis 2.8之前得复制功能

  1. 复制方式
  • 同步(sync)
    从服务器启动时执行同步操作。
  • 命令传播(command propagate)
    主服务器有操作命令时会广播给从服务器;然后从服务器在本地执行操作命令。
  1. 同步
  1. 主从服务器断开后的恢复


redis 2.8以后恢复功能

psync代替了sync命令来执行复制时的同步操作。

  1. sync的同步模式
  • 完整重同步
    用于初次复制情况,跟sync命令执行步骤一样。
  • 部分重同步
    用于断线后重复制情况。
  1. 部分重同步的实现方式
    • 复制偏移量
      主从服务器都会维护一个复制偏移量。主服务器每次向从服务器传播N个字节数据时,就将自己的复制偏移量的值加上N;从服务器每次收到主服务器传播来的N个字节的数据库,就将自己的复制偏移量的值加上N。
  • 复制积压缓冲区
    积压缓存区是主服务器维护的一个固定长度先进先出队列,默认大小为1M。当主服务器进行命令传播时,它不仅会将写命令发送给所有的服务器,还会将命令入队复制到积压缓冲区,复制缓冲区会记录每个字节相应的复制偏移量。
    假如从服务器的offset在积压缓冲区中,就执行部分重同步;假如offset不在积压缓冲区中,则进行完整重同步。
    复制积压缓冲区的大小= 从服务器恢复的秒数 * 每秒钟写的字节数大小

  • 服务器运行ID
    每个redis服务器都有会自己的运行ID,运行ID在服务器启动时自动生成,由40个随机的16进制字符组成。当从服务器对主服务器进行初次复制时,主服务器会把自己的运行ID传送给从服务器,从服务器则会把主服务器ID存储下来。短线重连时,会根据主运行ID来判断主服务器是不是变化了,不变化就继续执行部分重同步;变化了则进行完整重同步。

相关文章

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

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

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

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

  • Redis主从复制

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

  • Redis的高可用

    Redis主从复制 什么是主从复制 Redis有三种集群方案,主从复制,哨兵,cluster集群,主从复制是指将一...

  • redis(二)

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

  • Redis Sentinel 介绍与部署

    Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...

  • 高可用的redis服务搭建

    Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...

  • redis主从设置

    redis主从复制 Redis读取写入的速度都特别快,但是也会产生读压力特别大的场景。 Redis支持主从复制,主...

  • redis的三种集群方式

    redis的三种集群方式 redis有三种集群方式:主从复制,哨兵模式和集群。 1.主从复制 主从复制原理: 从服...

  • 【Redis 系列】redis 学习十,Redis 集群搭建和主

    主从复制的理论 先来说说什么是主从复制 主从复制,就是将一台 redis 服务器的数据,复制到其他的 redis ...

网友评论

      本文标题:redis的主从复制

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