redis缓存架构-03-redis下的replication以及master+slave

1.master和slave的读写分离(水平扩容支持读高并发)

  

2.master主从复制流程

  master开始复制给slave前的认证流程

    

    master向slave复制流程

  

  2.1 无磁盘化复制配置

    repl-diskless-sync yes #开启无磁盘化复制

    repl-diskless-sync-delay 5 #等待一定时间,看是否有其他的slave进行连接,然后进行复制

  2.2 断点续传

    master和slave节点会创建一个backlog,用来存储replica offset和master id,如果断网后重新连接,slave会让master从上次的replica offset开始继续复制,但是如果没有找到对应的offset,就会进行一次全量复制。

    slave会每秒上报自己的offset给master,master也会保存每个slave的offset。

  2.3 过期key的处理

    slave不会过期key,只会等待master过期key。

    如果master过期了key,或者通过LRU淘汰了key,那么master会模拟发送一条del命令给slave。

  2.4 建议必须开启master的持久化,不能采用slave的备份数据作为master的数据热备

    1)可能在master宕机时还没有数据,一旦重启,会将所有的slave数据清空

  2.5 master run id

    可以通过 info server,查看master的run id

    slave会根据run id 定位master,如果run id 发生了变化,就会进行全量复制。

    redis 每次重启都会改变run id ,可以通过redis-cli debug reload命令来限制run id的修改。

    

原文地址:https://www.cnblogs.com/lifeone/p/9330293.html

时间: 2024-10-19 08:53:57

redis缓存架构-03-redis下的replication以及master+slave的相关文章

《MySQL与Redis缓存架构》

<如何使用redis做mysql的缓存> 应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键. 这样处理,主要是实时读写redis,而mysql数据则通过队列异步处理,缓解mysql压力,不过这种方法应用场景主要基于高并发,而且redis的高可用集群架构相对更复杂,一般不是很

C#版-Redis缓存服务器在Windows下的使用

Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Windows版本的,微软官方开发了基于Windows的Redis服务器:MSOpenTech/redis 一.Redis服务端 首先下载Redis服务器,点击前往下载.msi版本,双击安装Redis服务端就有了,并以服务的形式随系统一起启动: 安装好Redis服务器之后第一件事就是设置密码,进入安装目录:

redis 实战教程、redis缓存教程、redis消息发布、订阅、redis消息队列教程

一:本教程使用环境: ubuntu12.x .jdk1.7 .Intellij idea.spring3.2.8 .redis服务端3.0,jedis客户端2.7.3 spring-data-redis 1.6.0 二:redis 服务端安装教程 这里不详解 三:redis 缓存特性 示例如下: spring配置: <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存

源代码下载: http://download.csdn.net/detail/jiangtao_st/7623113 1.Maven配置 [html] view plaincopyprint? <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.5.0</version> </dependenc

我的redis缓存机制和redis数据结构整理(一)

摘要: 0.redis安装 1.redis的常用数据结构类型 1.1  String 1.2  List 1.3  Set 1.4  Sorted Set 1.5  Hash 2.redis是单进程单线程的 3.管道 4.我的测试代码 内容总结 0.redis安装 官网地址 http://redis.io/ 下载:wget http://download.redis.io/releases/redis-3.2.4.tar.gz 解压:tar xzf redis-3.2.4.tar.gz 编译:c

Nginx+Redis+Ehcache:大型高并发与高可用的三层缓存架构总结

摘要: 对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,nginx+redis+ehcache Nginx 对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存热点数据,让用户的请求直接走缓存并返回,减少流向服务器的流量 一.模板引擎 通常我们可以配合使用freemaker/velocity等模板引擎来抗住大量的请求 小型系统可能直接在服务器端渲染出所有的页面并放入缓存,之后的相同页面请求就可以直接返回,

【转】Nginx学习---Nginx&amp;&amp;Redis&amp;&amp;hcache三层缓存架构总结

[原文]https://www.toutiao.com/i6594307974817120782/ 摘要: 对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,nginx+redis+ehcache Nginx 对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存热点数据,让用户的请求直接走缓存并返回,减少流向服务器的流量 一.模板引擎 通常我们可以配合使用freemaker/velocity等模板引擎来抗住

Redis 缓存失效机制

Redis缓存失效的故事要从EXPIRE这个命令说起,EXPIRE允许用户为某个key指定超时时间,当超过这个时间之后key对应的值会被清除,这篇文章主要在分析Redis源码的基础上站在Redis设计者的角度去思考Redis缓存失效的相关问题. Redis缓存失效机制 Redis缓存失效机制是为应对缓存应用的一种很常见的场景而设计的,讲个场景: 我们为了减轻后端数据库的压力,很开心的借助Redis服务把变化频率不是很高的数据从DB load出来放入了缓存,因此之后的一段时间内我们都可以直接从缓存

Redis缓存数据库服务器

Redis缓存数据库服务器Redis是一个开源的科技与内存也可持久化的日志型.Key-Value数据库Redis的存储分为内存存储.磁盘存储和Log文件三部分,配置文件中有三个参数对其进行配置. 优势:和Mecached相比,它更加安全也支持存储的value类型相对更多.Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步 /var/log/redis_6379.log 日志文件/var/lib/redis/6379