摘要:
CPU中央处理器是英语“CentralProcessingUnit”的缩写,即CPU,CPU一般由逻辑运算单元、控制单元和存储单元组成。在逻辑运算和控制单元中包括一些寄存器,这些寄存器用于CPU在处理数据过程中数据的暂时保存,简单的讲是由控制器和运算器二部分组成。 内存在计算机的组成结构中,有一个很 阅读全文
posted @ 2020-02-29 21:06
CodeNow99
阅读(1823)
评论(0)
推荐(0)
摘要:
[toc] 讲解 redis 是为了什么? 本课程主题:高并发、亿级流量、高性能、海量数据的场景,电商网站的商品详情页系统的缓存架构 商品详情页系统,大型电商网站,会有很多部分组成,但是支撑高并发、亿级流量的,主要就是其中的大型的缓存架构,在这个大型的缓存架构中,redis 是最最基础的一层 高并发 阅读全文
posted @ 2020-02-29 16:49
CodeNow99
阅读(333)
评论(0)
推荐(0)
摘要:
[toc] fork 耗时导致高并发请求延时 RDB 和 AOF 的时候会存在 RDB 快照生成、AOF rewrite,耗费磁盘 IO 的过程 主进程 fork 子进程的时候,子进程是需要拷贝父进程的空间内存页表的,也是会耗费一定的时间的 一般来说,如果父进程内存有 1 个 G 的数据,那么 fo 阅读全文
posted @ 2020-02-29 16:48
CodeNow99
阅读(766)
评论(0)
推荐(0)
摘要:
[toc] 节点间的内部通信机制 基础通信原理 redis cluster 节点间采取 gossip 协议进行通信 gossip:互相之间不断通信,保持整个集群所有节点的数据是完整的 而集中式是将集群元数据(节点信息,故障,等等)集中存储在某个节点上; 经典的集中式中间件 zookeeper 他们基 阅读全文
posted @ 2020-02-29 16:45
CodeNow99
阅读(612)
评论(0)
推荐(0)
摘要:
[toc] 讲解分布式数据存储的核心算法,数据分布的算法 hash 算法 一致性 hash 算法(memcached) redis cluster 的 hash slot 算法 用不同的算法,就决定了在多个 master 节点的时候,数据如何分布到这些节点上去,解决这个问题 看到这里的时候,已经明白 阅读全文
posted @ 2020-02-29 16:42
CodeNow99
阅读(476)
评论(0)
推荐(0)
摘要:
[toc] 课程前说明 后面几个章节会老提到 读写分离和 master。之前的课程讲解中说了读写分离后的水平扩容是通过扩容 slave 来达到的。 但是在实际生产环境中,读写分离支持不是很好,特别的 java 这种客户端,可以做到但是稍微复杂 单机 redis 在海量数据面前的瓶颈 之前讲解的一主多 阅读全文
posted @ 2020-02-29 16:39
CodeNow99
阅读(281)
评论(0)
推荐(0)
摘要:
[toc] sdown 和 odown 转换机制 sdown 和 odown 是两种失败状态 sdown 是主观宕机 一个哨兵如果自己觉得一个 master 宕机了,那么就是主观宕机 odown 是客观宕机 如果 quorum 数量的哨兵都觉得一个 master 宕机了,那么就是客观宕机 sdown 阅读全文
posted @ 2020-02-29 16:36
CodeNow99
阅读(351)
评论(0)
推荐(0)
摘要:
[toc] 两种数据丢失的情况 异步复制导致的数据丢失 因为 master slave 的复制是异步的,所以可能有部分数据还没复制到 slave,master 就宕机了,此时这些部分数据就丢失了 脑裂导致的数据丢失 何为脑裂?如上图由于一个集群中的 master 恰好网络故障,导致与 sentina 阅读全文
posted @ 2020-02-29 16:35
CodeNow99
阅读(521)
评论(0)
推荐(0)
摘要:
[toc] 哨兵的介绍 sentinel 中文名是哨兵 哨兵是 redis 集群架构中非常重要的一个组件,主要功能如下 集群监控:负责监控 redis master 和 slave 进程是否正常工作 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员 故障转移:如果 阅读全文
posted @ 2020-02-29 16:33
CodeNow99
阅读(213)
评论(0)
推荐(0)
摘要:
[toc] 什么是 99.99% 高可用? 不可用:系统挂掉,很难恢复起来,短时间内都不行,这就不可用 高可用:全年 99.99/99.9/99 % 的时间都能正常提供服务就是高可用 这里有一个比较学术点的解释: 可用性的高低 是使用 不可用时间 占 总时间 的比例来衡量。不可用时间是从故障发生到故 阅读全文
posted @ 2020-02-29 16:30
CodeNow99
阅读(593)
评论(0)
推荐(0)
摘要:
[toc] 复制的完整流程 1. slave node 启动,仅仅保存 master node 的信息 但是复制流程没开始,master 信息包括 host 和 ip , 那么是从哪儿来的?是在配置文件 redis.conf 里面的 slaveof 配置的 2. slave node 定时检查是否需 阅读全文
posted @ 2020-02-29 16:24
CodeNow99
阅读(218)
评论(0)
推荐(0)
摘要:
[toc] 主从架构的核心原理 当启动一个 slave node 的时候,它会发送一个 PSYNC 命令给 master node, 如果是重新连接:master node 仅仅会复制给 slave 部分缺少的数据; 如果是首次连接:会触发一次 full resynchronization(全量同步 阅读全文
posted @ 2020-02-29 16:20
CodeNow99
阅读(286)
评论(0)
推荐(0)
摘要:
[toc] redis 高并发的思路:redis replication 主从架构 读写分离 水平扩容支撑高并发 本章节主要讲解 redis replication 的最最基本的原理,作为铺垫 图解 redis replication 基本原理 在前一章节基本上已经讲过了,如上图差不多。写操作成功之 阅读全文
posted @ 2020-02-29 16:19
CodeNow99
阅读(243)
评论(0)
推荐(0)
摘要:
[toc] redis 高并发跟整个系统的高并发之间的关系 搞高并发的话,不可避免的要把底层的缓存搞得很好,这里就是 redis 使用 mysql 来支撑高并发的话,就算做到了,那么也是通过一系列复杂的分库分表方案。订单系统中是有事务要求的,QPS 到几万,就已经比较高了,很难提升上去了 要做一些电 阅读全文
posted @ 2020-02-29 16:15
CodeNow99
阅读(557)
评论(0)
推荐(0)
摘要:
[toc] 在企业中,持久化到底是怎么去用得呢?数据备份和各种灾难下的数据恢复,是怎么做得呢? 企业级的持久化的配置策略 在企业中,RDB 的生成策略,用默认的也差不多,如果有可能改动的地方,可能是如下两个配置: save 60 10000:如果你希望尽可能确保说,RDB 最多丢 1 分钟的数据,那 阅读全文
posted @ 2020-02-29 16:02
CodeNow99
阅读(208)
评论(0)
推荐(0)
摘要:
重新安排进度。我喜欢 P.Fagg,一个具有丰富经验的硬件工程师的忠告: “避免小的偏差(Take no small slips) ” 。 也就是说,在新的进度安排中分配充分的时间,以确保工作能仔细、彻底地完成,从而无需重新确定时间进度表。 简单、武断地重复一下 Brooks 法则: 向进度落后的项 阅读全文
posted @ 2020-02-29 14:51
CodeNow99
阅读(688)
评论(0)
推荐(0)
摘要:
现在,我并不认为软件经理内在的勇气和坚持不如厨师,或者不如其他工程经理。 但为了满足顾客期望的日期而造成的不合理进度安排, 在软件领域中却比其他的任何工程领域要普遍得多。 而且,非阶段化方法的采用,少得可怜的数据支持,加上完全借助软件经理的直觉,这样的方式很难生产出健壮可靠和规避风险的估计。 显然我 阅读全文
posted @ 2020-02-29 14:47
CodeNow99
阅读(159)
评论(0)
推荐(0)
摘要:
特别需要指出的是,不为系统测试安排足够的时间简直就是一场灾难。 因为延迟发生在项目快完成的时候。直到项目的发布日期,才有人发现进度上的问题。 因此,坏消息没有任何预兆,很晚才出现在客户和项目经理面前。 另外,此时此刻的延迟具有不寻常的、严重的财务和心理上的反应。 在此之前,项目已经配置了充足的人员, 阅读全文
posted @ 2020-02-29 14:45
CodeNow99
阅读(208)
评论(0)
推荐(0)
摘要:
第二个谬误的思考方式是在估计和进度安排中使用的工作量单位:人月。 成本的确随开发产品的人数和时间的不同,有着很大的变化,进度却不是如此。 因此我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。 它暗示着人员数量和时间是可以相互替换的。 阅读全文
posted @ 2020-02-29 14:42
CodeNow99
阅读(190)
评论(0)
推荐(0)
摘要:
对这种弥漫在编程人员中的乐观主义,理应受到慎重的分析。Dorothy Sayers 在她的 “The Mind of the Maker”一书中,将创造性活动分为三个阶段:构思、实现和交流。书 籍、计算机、或者程序的出现,首先是作为一个构思或模型出现在作者的脑海中,它与时间 和空间无关。接着,借助钢 阅读全文
posted @ 2020-02-29 14:40
CodeNow99
阅读(123)
评论(0)
推荐(0)
摘要:
诚然,产品开发所基于的技术在不断的进步 . 一旦设计被冻结,在概念上就已经开始陈旧了. 不过,实际产品需要一步一步按阶段实现.实现落后与否的判断应根据其他应有的系统,而不是未实现的概念. 因此,我们所面临的挑战和任务是在现有的时间和有效的资源范围内,寻找解决实际问题的切实可行方案 阅读全文
posted @ 2020-02-29 14:37
CodeNow99
阅读(100)
评论(0)
推荐(0)
摘要:
由他人来设定目标,供给资源,提供信息 . 编程人员很少能控制工作环境和工作目标 用管理的术语来说,个人的权威和他所承担的责任使不匹配的 不过,似乎在所有的领域中,对于要完成的工作,很少能提供与责任相一致的正式权威. 而现实情况中,实际(相对于正式)的权威来自于每次任务的完成 阅读全文
posted @ 2020-02-29 14:31
CodeNow99
阅读(162)
评论(0)
推荐(0)
摘要:
[toc] RDB 持久化机制的优点 1. 适合做冷备 RDB 会生成多个数据文件,每个数据文件都代表了某一个时刻中 redis 的数据,这种多个数据文件的方式,非常适合做冷备,可以将这种完整的数据文件发送到一些远程的安全存储上去,如云上,以预定好的备份策略来定期备份 redis 中的数据 2. 性 阅读全文
posted @ 2020-02-29 12:09
CodeNow99
阅读(248)
评论(0)
推荐(0)
摘要:
[toc] 我们已经知道对于一个企业级的 redis 架构来说,持久化是不可减少的 tip 牢记企业级 redis 集群架构是用来支撑海量数据、高并发、高可用 持久化主要是做灾难恢复、数据恢复,也可以归类到高可用的一个环节里面去 比如你 redis 整个挂了,redis 就不可用了,你要做的事情是让 阅读全文
posted @ 2020-02-29 12:00
CodeNow99
阅读(207)
评论(0)
推荐(0)
摘要:
redis 持久化的意义,在于故障恢复 比如你部署了一个 redis,作为 cache 缓存,当然也可以保存一些较为重要的数据,如果没有持久化的话,redis 遇到灾难性故障的时候,就会丢失所有的数据 如果通过持久化将数据存在磁盘上,然后可以定期同步和备份这些文件到一些云存储服务上去,那么就可以保证 阅读全文
posted @ 2020-02-29 11:47
CodeNow99
阅读(200)
评论(0)
推荐(0)
摘要:
大型电商网站的详情页架构一般是这样的核心思路,如上图 两个关键点: 1. 缓存数据生产服务 2. nginx 上的 html 模板 + 本地缓存数据 来捋一捋流程: 1. 用户访问 nginx 会先从 nginx 的本地缓存获取数据渲染后返回,这个速度很快,因为全是内存操作。 本地缓存数据是有时间的 阅读全文
posted @ 2020-02-29 11:42
CodeNow99
阅读(379)
评论(0)
推荐(0)
摘要:
一、埋点 1)PV和UV PV:Page View,页面访问次数。 UV:Unique Visitor,页面独立的访问次数,通过Cookie区分不同的人。 2)关键转化率 转化率用来衡量一个时间段内,特定的用户行为量和页面流量的比率,页面关键的数据信息点都不一样,但可以总结为“某个按钮的点击率”。 阅读全文
posted @ 2020-02-29 10:26
CodeNow99
阅读(800)
评论(0)
推荐(0)

浙公网安备 33010602011771号