随笔分类 - Redis
摘要:[toc] 讲解 redis 是为了什么? 本课程主题:高并发、亿级流量、高性能、海量数据的场景,电商网站的商品详情页系统的缓存架构 商品详情页系统,大型电商网站,会有很多部分组成,但是支撑高并发、亿级流量的,主要就是其中的大型的缓存架构,在这个大型的缓存架构中,redis 是最最基础的一层 高并发
阅读全文
摘要:[toc] fork 耗时导致高并发请求延时 RDB 和 AOF 的时候会存在 RDB 快照生成、AOF rewrite,耗费磁盘 IO 的过程 主进程 fork 子进程的时候,子进程是需要拷贝父进程的空间内存页表的,也是会耗费一定的时间的 一般来说,如果父进程内存有 1 个 G 的数据,那么 fo
阅读全文
摘要:[toc] 节点间的内部通信机制 基础通信原理 redis cluster 节点间采取 gossip 协议进行通信 gossip:互相之间不断通信,保持整个集群所有节点的数据是完整的 而集中式是将集群元数据(节点信息,故障,等等)集中存储在某个节点上; 经典的集中式中间件 zookeeper 他们基
阅读全文
摘要:[toc] 讲解分布式数据存储的核心算法,数据分布的算法 hash 算法 一致性 hash 算法(memcached) redis cluster 的 hash slot 算法 用不同的算法,就决定了在多个 master 节点的时候,数据如何分布到这些节点上去,解决这个问题 看到这里的时候,已经明白
阅读全文
摘要:[toc] 课程前说明 后面几个章节会老提到 读写分离和 master。之前的课程讲解中说了读写分离后的水平扩容是通过扩容 slave 来达到的。 但是在实际生产环境中,读写分离支持不是很好,特别的 java 这种客户端,可以做到但是稍微复杂 单机 redis 在海量数据面前的瓶颈 之前讲解的一主多
阅读全文
摘要:[toc] sdown 和 odown 转换机制 sdown 和 odown 是两种失败状态 sdown 是主观宕机 一个哨兵如果自己觉得一个 master 宕机了,那么就是主观宕机 odown 是客观宕机 如果 quorum 数量的哨兵都觉得一个 master 宕机了,那么就是客观宕机 sdown
阅读全文
摘要:[toc] 两种数据丢失的情况 异步复制导致的数据丢失 因为 master slave 的复制是异步的,所以可能有部分数据还没复制到 slave,master 就宕机了,此时这些部分数据就丢失了 脑裂导致的数据丢失 何为脑裂?如上图由于一个集群中的 master 恰好网络故障,导致与 sentina
阅读全文
摘要:[toc] 哨兵的介绍 sentinel 中文名是哨兵 哨兵是 redis 集群架构中非常重要的一个组件,主要功能如下 集群监控:负责监控 redis master 和 slave 进程是否正常工作 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员 故障转移:如果
阅读全文
摘要:[toc] 什么是 99.99% 高可用? 不可用:系统挂掉,很难恢复起来,短时间内都不行,这就不可用 高可用:全年 99.99/99.9/99 % 的时间都能正常提供服务就是高可用 这里有一个比较学术点的解释: 可用性的高低 是使用 不可用时间 占 总时间 的比例来衡量。不可用时间是从故障发生到故
阅读全文
摘要:[toc] 复制的完整流程 1. slave node 启动,仅仅保存 master node 的信息 但是复制流程没开始,master 信息包括 host 和 ip , 那么是从哪儿来的?是在配置文件 redis.conf 里面的 slaveof 配置的 2. slave node 定时检查是否需
阅读全文
摘要:[toc] 主从架构的核心原理 当启动一个 slave node 的时候,它会发送一个 PSYNC 命令给 master node, 如果是重新连接:master node 仅仅会复制给 slave 部分缺少的数据; 如果是首次连接:会触发一次 full resynchronization(全量同步
阅读全文
摘要:[toc] redis 高并发的思路:redis replication 主从架构 读写分离 水平扩容支撑高并发 本章节主要讲解 redis replication 的最最基本的原理,作为铺垫 图解 redis replication 基本原理 在前一章节基本上已经讲过了,如上图差不多。写操作成功之
阅读全文
摘要:[toc] redis 高并发跟整个系统的高并发之间的关系 搞高并发的话,不可避免的要把底层的缓存搞得很好,这里就是 redis 使用 mysql 来支撑高并发的话,就算做到了,那么也是通过一系列复杂的分库分表方案。订单系统中是有事务要求的,QPS 到几万,就已经比较高了,很难提升上去了 要做一些电
阅读全文
摘要:[toc] 在企业中,持久化到底是怎么去用得呢?数据备份和各种灾难下的数据恢复,是怎么做得呢? 企业级的持久化的配置策略 在企业中,RDB 的生成策略,用默认的也差不多,如果有可能改动的地方,可能是如下两个配置: save 60 10000:如果你希望尽可能确保说,RDB 最多丢 1 分钟的数据,那
阅读全文
摘要:[toc] RDB 持久化机制的优点 1. 适合做冷备 RDB 会生成多个数据文件,每个数据文件都代表了某一个时刻中 redis 的数据,这种多个数据文件的方式,非常适合做冷备,可以将这种完整的数据文件发送到一些远程的安全存储上去,如云上,以预定好的备份策略来定期备份 redis 中的数据 2. 性
阅读全文
摘要:[toc] 我们已经知道对于一个企业级的 redis 架构来说,持久化是不可减少的 tip 牢记企业级 redis 集群架构是用来支撑海量数据、高并发、高可用 持久化主要是做灾难恢复、数据恢复,也可以归类到高可用的一个环节里面去 比如你 redis 整个挂了,redis 就不可用了,你要做的事情是让
阅读全文
摘要:redis 持久化的意义,在于故障恢复 比如你部署了一个 redis,作为 cache 缓存,当然也可以保存一些较为重要的数据,如果没有持久化的话,redis 遇到灾难性故障的时候,就会丢失所有的数据 如果通过持久化将数据存在磁盘上,然后可以定期同步和备份这些文件到一些云存储服务上去,那么就可以保证
阅读全文
摘要:说明由于防火墙没有关闭 解决方案:开通6379端口,或者关闭防火墙 当配好主从redis之后,经常会发现,slave无法连接上master。我们使用命令:redis cli h (master的IP) p 6379(master的端口号),如果连不通会出现no route to host,这时我们要
阅读全文
摘要:Redis数据类型 Redis支持五种数据类型: string(字符串) , hash (哈希) , list (列表) , set (集合) , 及zset (sorted set : 有序集合) | 类型 | 简介 | 特性 | 场景 | | | | | | | string | 二进制安全 |
阅读全文

浙公网安备 33010602011771号