系统中缓存更新的设计机制-整理

本文主要整理缓存的设计模式属于基本的原理级别,但是却是现在众多缓存技术的基础与基石,虽然作者本人也是初出茅庐的菜鸟级程序员,但是读到研究生阶段的学习经历也让我总结出不少经验-----基础原理太重要了!!!在这提醒还处于学生阶段的老铁一定记住这句话,在学校一定要好好学习基础知识啊!!!(以后你会知道大用处的)

备注: 文章可能写的看起来有些枯燥?,临时总结导致。

更新缓存是设计主要有四种模式:
  • cache aside
  • cache through
  • write through
  • write behind caching
一、cache aside pattern

这种模式是最基本的缓存模式,在实际应用中主要体现在以下三个方面。

  • 失效:缓存失效的场景中,应用程序首先从cache查找数据,没有命中目标,这是则从数据库中获取数据,成功获的数据后,放到缓存中。
  • 命中:表示应用程序从缓存中命中数据,则从缓存中获得数据返回。
  • 更新(易出错):应用程序先将数据存储到数据中,成功之后,再让缓存失效(注意先后顺序)。
二、read/write through pattern

对比与第一条模式中应用程序需要维护两个数据库(一个缓存,一个数据库),本条设计模式的原则是让数据库自己维护自己的缓存,在应用程序看来数据层就是一个单一的存储源。
其中,read through是在读的时候更新缓存,而write through则是在更新的时候执行,这个分为两种情况,一种是在更新的时候如果命中缓存,则更新缓存,然后再由缓存去自己更新数据库。另一种情况是更新的时候没有命中缓存,则直接更新数据库。

三、write behind caching pattern

这种模式类似于Linux中的page cache原理,即数据更新时紧紧更新缓存,不更新数据库,后期由缓存异步的、批量的更新数据库,这种模式会极大的提高数据写入速度没因为直接在内存层面操作。但也会带来一些列不足,比如无法保证数据的强一致性,系统非正常关机的情况下可能会导致数据丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值