一小时让你搞懂分布式缓存

开课吧开课吧锤锤2021-05-12 17:54

    在高并发架构的设计中,缓存是如何也绕不开的一个重要步骤,从简单的电商秒杀系统,到全民为之疯狂的双十一都有它的身影,可以说,如果你想设计出一个能巨大流量的高并发架构,分布式缓存的设计是第一道拦路虎。

    5月11日的《HelloWorld公开课》,前美团资深架构师风麟老师,用一节课的时间来教你如何设计分布式缓存。

    缓存基础理论

    缓存可以分为系统级缓存和应用级缓存,系统级缓存就是我们常说的CPU缓存,可以分为一、二、三级缓存。L1Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大。

    L2Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,理论上,L2Cache缓存越大越好。

    最后是L3Cache,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

web

    常用的缓存淘汰算法有如下几种,要记住,这些算法在不同层次的缓存上执行时拥有不同的效率和代价,需根据具体场合选择最合适的一种。

    最不经常使用(LRU):判断数据最近使用时间,时间最远的数据优先被淘汰。

    先进先出算法(FIFO):如果一个数据最先进入缓存,则最早被淘汰掉。

    最近最少使用(LFU):在一段时间内,数据被使用的次数最少,优先被淘汰

    Redis原理

    redis除了可以储存键值对外,还可以储存数据类型,分别是分别是:String、List、Set、Hash、ZSet。下面我们通过一张图来看下,这几种数据类型都对应了哪几种数据结构。

web

    Redis分别提供了RDB和AOF两种持久化机制,AOF是以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到AOF文件,以此达到记录数据库状态的目的。默认情况下,Redis并没有主动开启AOF。开启后,每执行一条更改Redis数据的命令,都会把该命令追加到AOF文件中,这是会降低Redis的性能

    AOF有三种写回策略,always,同步写回,命令执行完,同步写回磁盘。Everysec,每秒写回,命令执行完,先把日志写到AOF文件的内存缓冲区,每隔一秒把缓冲区中的内容写入磁盘;No,操作系统控制的写回。

web

    这些内容知识风麟老师所讲的一部分内容,比如AOF会阻塞么?阻塞后该怎么办呢,还有在集群的架构中,要如何设计缓存呢?想要完整的了解分布式缓存的内容同学,可以点击分布式缓存高手进阶之路(上)观看公开课的回放视频呦!

    讲师介绍

    风麟老师曾就职于搜狗,美团等互联网公司,负责核心业务系统的微服务建设和架构设计。对系统价格的高可用,数据中台,领域驱动等方面有丰富经验。

    《Hello,World公开课》是由开课吧推出的面向广大开发工程师的免费加餐课,集结业内名师大咖,聚焦热门技术和实战解决方案,以专业知识分享交流为桥梁,链接正在创造世界的一群科技主力们,向初心致敬,为技术发烧。无论你是初入职场的应届生,还是准备升职加薪的职场精英,相信这里都有你需要的养料。

    以上就是开课吧广场小编为大家整理发布的“一小时让你搞懂分布式缓存”一文,更多动态相关内容尽在开课吧广场动态频道!

有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
Hello,World公开课