温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
本节课我们来讨论一下基于redies的旁路缓存架构。首先了解一下什么是redies redis是基于内存的开源nasco数据库,不论读写操作都是在内存上完成的,完全吊打磁盘数据库的速度。它是一个高性能的建值数据库。除了Reddis以外,你知道还有哪些nasco数据库吗?欢迎评论区留言讨论。Reddis具有以下的功能特点,1、纯内存操作。Reddis一般都是简单的内存存取操作,现程占用的时间很少,时间的花费主要集中在输入输出上,所以读取速度快。2、采用单线程模型。Reddi采用了单线程模型,从而保证了每个操作的原子性,也减少了线程的上下文切换和竞争。3、使用IO多路复用模型。Redddi将操作都转换成了事件,使用了单线程来轮循事件,并实现了事件分离器,因此效率比较高。4、高效数据结构reddis全使用哈希结构,因此读取速度快。并且对数据存。
01:00
存储进行了优化,还可以根据实际存储的数据类型选择不同编码。了解到了reddies的基本知识后,下面具体介绍一下基于reddies的旁路缓存架构。首先讨论读操作架构体系中包含三个部分,分别是客户端应用,它负责发起读数据操作,Reddis将负责将数据进行缓存,数据库负责数据的持久化存储。第一步,客户端应用会优先读取内存数据库reddis中的数据,如果读取到数据则直接返回数据,否则执行后续的步骤。第二步,客户端会读取数据库中的数据,并将数据返回给客户端应用。第三步,将第二步中读取到的数据再返回给客户端应用时,同时回落到redis中,方便下次的读取。接着讨论一下写操作架构体系中同样包含三个部分,分别是客户端应用reddis和数据库。第一步由客户端应用先更新数据库中的数据,第二步数据库将驱动内存数据库red中数据的更新。
02:00
此时可以将reddis中旧版本的数据先删除,再插入新的数据值,从而保证数据的一致性。最后总结一下,旁路缓存架构适用于缓存数据的计算逻辑比较复杂,对数据一致性要求较高,数据变更不频繁,且没有超大并发的场景中。但该架构也存在一些问题,由于更新操作会删除缓存中的数据,所以如果存在某些热点被删除,会导致瞬时大量请求穿透到数据库,从而加大数据库的压力。现在你已经知道基于red的旁路缓存架构,那你知道基于reddis的读写穿透架构吗?欢迎评论区留言,讨论好了记得点加号关注赵宇强老师。
我来说两句