`
zhaomengsen
  • 浏览: 202571 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

Redis主从复制问题和扩容问题的解决思路

阅读更多
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/106.html?1455867541
一、解决主从复制问题
当使用Redis作为存储引擎的时候,并且使用Redis​读写分离,从机作为读的情况,从机宕机或者和主机断开连接都需要重新连接主机,重新连接主机都会触发全量的主从复制,这时候主机会生成内存快照,主机依然可以对外提供服务,但是作为读的从机,就无法提供对外服务了,如果数据量大,恢复的时间会相当的长。为了解决Redis主从Copy的问题,有如下两个解决方案:
主动复制
所谓主动复制,就是业务层双写多个Redis,避开Redis自带的主从复制。但是自己干同步,就会产生一致性问题,为了保证主从一致,需要加入一系列的验证机制。而且这样的做法,会降低系统性能。
修改源代码,支持增量同步
Redis写AOF文件,关闭Redis rewrite AOF文件功能,为了避免文件过大,可以自己实现文件分割功能。
在业务低峰时期,生成内存快照,并记录快照时刻AOF所在的点。
当从机重连的时候,从机发送同步命令给主机,主机收到命令后,把最新的快照文件发送给从机,从机从快照文件中恢复,并且获得了该快照对应的AOF点,从机将AOF点发送给主机,主机将AOF文件中该点之后的所有数据操作同步给从机,达到增量同步的效果。
二、解决扩容问题
Redis作者的思路是:Redis Presharding(http://oldblog.antirez.com/post/redis-presharding.html)
预算设定Redis instances数量,假设实例数量n,n = 机器数*单台机器redis实例数
后期扩展只需要将旧机器上的部分redis实例迁移到新的机器上,达到平滑扩容。
迁移步骤如下:
在新的机器上创建实例,并且每个实例设置为被迁移实例的从机。
主从复制完成之后,设置程序将新的实例作为主。
停止旧的实例
经过如上步骤之后,旧机器的内存就变大了,最后内存最大为每台机器一个Redis实例。
按作者文章中所说的,一个机器启动多个实例,其实并不会耗费太多资源,因为Redis够轻量,另外多个实例一个接一个的重写AOF文件或者生成内存快照,可以降低内存的占用,而不影响对外的服务
分享到:
评论

相关推荐

    Redis主从复制和集群配置

    ### Redis主从复制和集群配置详解 #### 一、Redis主从复制原理及配置 **1.1 概述** Redis的主从复制机制是一种重要的数据同步方式,它支持一个或多个从数据库(slave)与主数据库(master)之间进行数据同步。其中,...

    Redis主从复制以及主从复制技术原理.docx

    Redis 主从复制技术原理 概述 Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的...Redis 主从复制技术可以解决单一节点的问题,实现数据的冗余备份和高可用,提高系统的整体性能和可靠性。

    redis主从复制集群

    - 为了解决这个问题,Redis 提供了无磁盘复制功能。 - **原理:** - 主节点在接收到 `SYNC` 请求时,不会将快照写入磁盘,而是直接通过网络传输给从节点。 - 这样可以显著减少复制过程中对磁盘 I/O 的依赖。 - ...

    LAMP架构+Redis主从复制.docx

    本文档主要介绍了LAMP架构的安装和配置,以及Redis主从复制的设置。LAMP架构是指Linux操作系统、Apache HTTP服务器、MySQL数据库和PHP编程语言的组合,而Redis则是一个开源的、基于内存的数据存储系统,本文将详细...

    redis主从复制活动图

    描述redis主从复制的过程中的各种细节,包括各个阶段所使用的事件处理函数

    Redis主从复制+哨兵配置手册.docx

    Redis 主从复制是一种高可用性解决方案,可以确保数据的安全和可靠性。在这个手册中,我们将详细介绍 Redis 主从复制的配置和哨兵的配置。 环境准备 在开始配置 Redis 主从复制之前,需要先准备环境。环境准备包括...

    redis常用命令,redis配置文件,redis持久化,redis事务,redis主从复制,jedis的使用

    下面是对 Redis 的常用命令、配置文件、持久化、事务、主从复制、Jedis 使用的详细讲解。 Redis 常用命令 Redis 提供了很多有用的命令来管理和操作数据。下面是一些常用的 Redis 命令: * SET key value:设置...

    redis主从配置及通过keepalived实现redis自动切换

    Redis 主从配置及通过 Keepalived 实现 Redis 自动切换 标题:Redis 主从配置及通过 Keepalived ...Redis 主从配置及通过 Keepalived 实现 Redis 自动切换可以实现高可用性和自动故障转移,提高系统的可靠性和稳定性。

    windows下redis主从复制文件

    windows下redis主从复制。一个master,两个slave。附带博客介绍https://blog.csdn.net/xixiyuguang/article/details/105121660

    第02篇:Redis主从复制getshell1

    1、生成恶意.so文件,下载RedisModules-ExecuteCommand使用make编译即可生成 1、监听本地1234端口 2、将Redis服务器设置

    redis 主从配置demo

    在分布式系统中,为了保证数据的高可用性和持久性,通常会采用主从复制(Master-Slave Replication)的架构。本教程将通过一个简单的示例介绍如何配置 Redis 主从。 一、Redis 主从复制的基本原理 在 Redis 的主从...

    深入剖析Redis主从复制.pdf

    本文将深入探讨Redis主从复制的机制,包括全同步和部分同步的过程,以及积压空间在主从复制中的作用。 在Redis主从复制中,有两种同步方式:全同步和部分同步。全同步发生在主从服务器初次建立连接或从服务器需要...

    redis 主从服务器配置

    在本文中,我们将详细介绍如何配置 Redis 主从服务器,以实现高可用性和高性能的缓存系统。 Redis 概述 Redis 是一个开源的、基于内存的数据存储系统,可以用作数据库、缓存和消息队列等。Redis 的特点是高性能、...

    通过SSRF操作Redis主从复制写Webshell_R3start1

    1.使用 DICT 协议添加一条测试记录 2.设置保存路径 3.设置保存文件名 4.保存 1.连接远程主服务器 2.设置保存路径 3.设置保存文件名 4.保存

    Redis主从复制教程与实战

    Redis主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且...

Global site tag (gtag.js) - Google Analytics