redis_主从

作者: hello_coke | 来源:发表于2016-08-21 22:27 被阅读93次

1、为什么要搭建主从系统

这已经是业界很多应用的通用做法了,跟mysql一样搭建主从常见的就是可以实现读写分离,至于为什么要做读写分离从redis的本身来讲:redis的操作具有原子性,同时使用的是单线程(这样可以避免多线程之间切换消耗)操作,过多的写会阻塞线程影响redis的整体性能同时也会影响redis读性能。

此外当我们集群中或者单机的主节点宕机了或者无法跟集群的其它节点就行通讯的话,如果没有从节点则这部分缓存数据丢失,如果有从节点时我们可以用节点数据继续服务因为几乎所有的数据主节点都同步到从节点啦,可以正常使用。

2、主从特性

1、一个 master 可以拥有一个或者多个 slave。

2、slave 可以接收来自其他 slave 的连接。意思是不是就是说 slave 在接收其他的slave的连接之后成为 master ?等下我们来验证。

3、redis 复制在 master 这一端是非阻塞的,也就是说在和 slave 同步数据的时候,master 仍然可以执行客户端的操作命令而不受其影响。

4、redis 复制在 slave 这一端也是非阻塞的。在配置文件里面有 slave-serve-stale-data 这一项,如果它为 yes ,slave 在执行同步时,它可以使用老版本的数据来处理查询请求,如果是 no ,slave 将返回一个错误。在完成同步后,slave 需要删除老数据,加载新数据,在这个阶段,slave 会阻止连接进来。

5、使用复制可以避免 master 因为需要把全部的数据集写入磁盘而造成的开销,因此可以把 master 中 save 配置项全部注释掉,不让它进行保存,然后配置 slave ,让 slave 保存。虽然有这个特性,但是我们好像一般不这么做。

3、实现过程

我这边还是打算在同一台虚拟机上不同的3个端口上模拟3个实例:

1、分别在5000、5100、5200端口上启动3个redis实例

5000端口实例 5100端口实例 5200端口实例

现在我们只是模拟启动了3个redis实例,我们把端口5000的实例做为主,端口5100、5200的作为从,具体应该怎么实现呢,如下:

其实主要是命令./redis-cli -p 5100在连接上以后 执行slaveof 127.0.0.1 5000 就可以啦,slaveof命令也很好理解意为什么的从。

从5100 从5200

5100、5200两个从的实例已经绑定完成了,下面让我们来测试一下吧:

5000端口机器操作

127.0.0.1:5000> set port 5000

OK

5100端口机器操作:

127.0.0.1:5100> get port

"5000"

5200端口机器操作:

127.0.0.1:5200> get port

"5000"

如上主的结果会同步到从的机器上面

主从实现原理剖析:

当你设置了主从关系后,slave 在第一次连接或者重新连接 master 时,slave 都会发送一条同步指令给 master ;master 接到指令后,开始启动后台保存进程保存数据,接着收集所有的数据修改指令。后台保存完了,master 就把这份数据发送给 slave,slave 先把数据保存到磁盘,然后把它加载到内存中,master 接着就把收集的数据修改指令一行一行的发给 slave,slave 接收到之后重新执行该指令,这样就实现了数据同步。slave 在与 master 失去联系后,自动的重新连接。如果 master 收到了多个 slave 的同步请求,它会执行单个后台保存来为所有的 slave 服务。

相关文章

  • redis_主从

    1、为什么要搭建主从系统 这已经是业界很多应用的通用做法了,跟mysql一样搭建主从常见的就是可以实现读写分离,至...

  • redis_主从复制

    redis主从复制 同时存在以下几个问题: 一旦 主节点宕机,从节点 晋升成 主节点,同时需要修改 应用方 的 主...

  • redis_安装

    一、什么是 Redis REmoteDIctionaryServer,简称 Redis,是一个类似于Memcach...

  • redis_集群

    1、为什么要弄redis集群 集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从...

  • redis_内存淘汰策略

    redis_内存淘汰策略 介绍 Redis的内存淘汰策略是指在Redis的用于缓存的内存不足时,怎么处理需要新写入...

  • redis_集群搭建

    利用docker-compose编排redis集群 官方工具安装 下载、编译、安装 Ruby 安装 redis-t...

  • Redis_测试性能

    redis-benchmark是一个压力测试工具,官方自带的性能测试工具!redis性能测试工具可选参数如下所示:...

  • 32主从复制

    职责搭建主从复制,主从原理熟悉,主从的故障处理,主从延迟,主从的特殊架构的配置使用,主从架构的演变 主从复制介绍主...

  • mysql 主从复制

    mysql 主从复制 网易数据库 石勇 提纲 什么是主从复制 主从复制的原理 主从复制的用途 主从复制的搭建 主从...

  • MySQL主从介绍、配置主、配置从、测试主从同步

    MySQL主从介绍MySQL主从介绍 配置主 配置主 配置从 配置从 测试主从同步 测试主从同步

网友评论

本文标题:redis_主从

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