Redis企业级缓存策略之——Redis主从

一:企业常见的Redis主从架构

①一主多从

②一主多从从


二:主从复制的优点

(1)高可用性

在一个Redis集群中,如果master宕机,slave可以介入并取代master的位置,因此对于整个Redis服务来说不至于提供不了 服务,这样使得整个Redis服务足够安全。

(2)高性能

在一个Redis集群中,master负责写请求,slave负责读请求,这么做一方面通过将读请求分散到其他机器从而大大减少了 master服务器的压力,另一方面slave专注于提供读服务从而提高了响应和读取速度。

(3)水平拓展性

通过增加slave机器可以横向(水平)扩展Redis服务的整个查询服务的能力。

三:主从复制能够解决什么问题,同时又带来了什么问题

复制提供了高可用性的解决方案,但同时引入了分布式计算的复杂度问题,认为有两个核心问题:

(1)数据一致性问题:如何保证master服务器写入的数据能够及时同步到slave机器上。

(2)读写分离:如何在客户端提供读写分离的实现方案,通过客户端实现将读写请求分别路由到master和slave实例上。 上面两个问题,尤其是第一个问题是Redis服务实现一直在演变,致力于解决的一个问题:复制实时性和数据一致性矛盾

总结:Redis提供了提高数据一致性的解决方案,一致性程度的增加虽然使得我能够更信任数据,但是更好的一致性方案通常伴随着性能的损失,从而减少了吞吐量和服务能力。然而我们希望系统的性能达到最优,则必须要牺牲一致性的程度,因此Redis的复制实时性和数据一致性是存在矛盾的。

四:主从复制过程详解

1、slave向master发送sync命令。 

2、master开启子进程来将dataset写入rdb文件,同时将子进程完成之前接收到的写命令缓存起来。 

3、子进程写完,父进程得知,开始将RDB文件发送给slave。 master发送完RDB文件,将缓存的命令也发给slave。 master增量的把写命令发给slave。

注意:slave与master断开后可自动重新连接master。在redis2.8版本之前,每当slave进程挂掉重新连接master的时候都会开始新的一轮全量复制。如果
master同时接收到多个slave的同步请求,则master只需要备份一次RDB文件。

相关知识点:Redis持久化存储策略之RDBAOF

①RDB:snapshotting 数据快照, 二进制格式;
    1)策略描述:按事先定制的策略,周期性地将数据从内存同步至磁盘;数据文件默认为dump.rdb;
    2)快照方法:redis-cli 显式使用sava或bgsave命令来手动启动快照保存机制
        SAVE:同步,即在主线程中保存快照,此时会阻塞所有客户端请求; 
        BGSAVE:异步;backgroud
②AOF:Append Only File, fsync
    1)策略描述:记录每次写操作至指定的文件尾部实现的持久化;当redis重启时,可通过重新执行文件中的命令在内存中重建出数据库;
    2)redis-cli命令
        BGREWRITEAOF:AOF文件重写
        不会读取正在使用的AOF文件,而是通过将内存中的数据以命令的方式保存至临时文件中,完成之后替换原来的AOF文件;
注意:①Redis默认使用RDB文件进行持久化存储,可通过修改redis主配置文件,开启AOF功能
   ②两文件默认存储在/var/lib/redis/目录下

五:Redis主从配置过程

1、配置环境

master:172.17.214.73

slave:172.17.214.74

slave:172.17.214.75

2、配置前准备

①各服务器安装redis

②备份主配置文件

③确保各节点防火墙关闭、selinux关闭,时钟同步(否则容易被认为已超时)

3、配置过程

①修改所有主机主配置文件

vim /etc/redis.conf
    daemonize yes     #以守护进程启动
    bind    127.0.0.1   #监听本机IP
注意:工作环境中应将bind绑定在127.0.0.1上,且修改默认端口,防止Redis相关的”key“网络植入攻击

②修改从服务器主配置文件

### REPLICATION ### 
slaveof 192.168.1.29 6379     #指定主节点地址IP port
#masterauth             #如果设置了访问认证就需要设定此项。 
slave-server-stale-data yes     #当slave与master连接断开或者slave他
r正处于同步状态时,如果slave收到请求允许响应,no表示返回错误。 
slave-read-only yes         #slave节点为只读
slave-priority 100         #设定此节点的优先级,是否优先被同步(值越小,优先级越高)

③测试结果

主节点上新建一个key value,查看从节点是否同步
时间: 2024-10-29 23:18:34

Redis企业级缓存策略之——Redis主从的相关文章

Redis的缓存策略和主键失效机制

作为缓存系统都要定期清理无效数据,就需要一个主键失效和淘汰策略. 在Redis当中,有生存期的key被称为volatile.在创建缓存时,要为给定的key设置生存期,当key过期的时候(生存期为0),它可能会被删除. 1.影响生存时间的一些操作 生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSET 命令覆盖原来的数据,也就是说,修改key对应的value和使用另外相同的key和value来覆盖以后,当前数据的生存时间不同. 比如说,对一个 key 执行I

分布式缓存技术redis学习(三)——redis高级应用(主从、事务与锁、持久化)

  上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性.目录如下: 安全性设置 设置客户端操作秘密 客户端授权方式 主从复制 主从复制的特点 主从复制的过程 配置主从服务器 事务与锁 事务开启与取消 乐观锁 持久化机制 RDB方式 AOF方式 发布以及订阅消息   安全性设置 设置客户端操作秘密 redis安装好后,默认情况下登陆客户端和使用命令操作时不需要密码的.某些情况下,为了安全起见,我们可以设置在客

【高并发架构】Redis缓存高并发之-主从架构

Redis主从架构 到目前为止,Redis Cluster 能实现很好的性能,但如果只是缓存几个G的数据,那么单机Redis就足够了,但缓存主要用来读的,单机的QPS有一定的极限,一两万QPS一台应该没什么问题,但如果是几十万的QPS这类场景呢?Redis主从架构就非常合适. 主从架构主要是保证Redis的高并发性的,对于缓存来说,一般也都是用来支撑读高并发的.因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其它的 slave 节点,从节点负责读.所有的读请

ElastiCache for Redis 缓存策略

延迟加载 顾名思义,延迟加载 是一种仅在需要时将数据加载到缓存中的缓存策略.它的工作方式如下所述. Amazon ElastiCache 是一种内存中键-值存储,位于您的应用程序和其访问的数据存储(数据库)之间.当应用程序请求数据时,它会先向 ElastiCache 缓存发出请求.如果数据在缓存中且最新,则 ElastiCache 会将数据返回到应用程序.如果数据不存在于缓存中或已过期,则应用程序会从数据存储中请求数据.然后,数据存储会将数据返回给应用程序.应用程序接下来将从存储收到的数据写入缓

Redis高并发缓存策略

最大内存可配置: 缓存淘汰策 Redis集群,数据存储在不同的机器上 算法原理:一致性has算法,每个key值进行has计算. 一致性has算法能对字符串记性计算吗 动态增加减少服务器时,redis服务器会进行重定向分配 原文地址:https://www.cnblogs.com/laoer/p/10504899.html

ehcache memcache redis 三大缓存男高音

最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考!  Ehcache 在java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案.正因为Ehcache具有健壮性(基于java开发).被认证(具有apache 2.0  license).充满特色(稍后会详细介绍),所以被用于大型复杂分布式web application的各个节点中. 什么特色? 1.  够快 Ehcache的发行有一段

浅谈小白如何读懂Redis高速缓存与持久化并存及主从高可用集群

一.简介 Redis是一个基于键值(K-V)的高速缓存软件,和他具有相同功能的软件有memcached,但其支持更为复杂的数据结构,例如:List,set,sorted set,同时redis具有持久性功能.redis究竟是什么?对于不同的应用场合,对redis的理解也不相同,如下有三种不同的理解. ①key value store(键值存储),是一个以键值形式存储的数据库,用来作为唯一的存储系统,同时借助于sentinel实现一定意义上的高可用. ②memory cached(内存缓存),是一

ehcache memcache redis 三大缓存男高音_转

ehcache memcache redis 三大缓存男高音 2013-01-16 15:43 10500人阅读 评论(2) 收藏 举报 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考!  Ehcache 在java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案.正因为Ehcache具有健壮性(基于java开发).被认证(具有apache 2.0  license).充满特色(稍

redis配置文件详解及实现主从同步切换

redis配置文件详解及实现主从同步切换 redis复制 Redis复制很简单易用,它通过配置允许slave Redis Servers或者Master Servers的复制品.接下来有几个关于redis复制的非常重要特性: 一个Master可以有多个Slaves. Slaves能过接口其他slave的链接,除了可以接受同一个master下面slaves的链接以外,还可以接受同一个结构图中的其他slaves的链接. redis复制是在master段是非阻塞的,这就意味着master在同一个或多个