- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(一)—— 缓存预留模式.pdf
(⼀)—— 缓存预留模式
云计算设计模式 (⼀)——缓存预留模式
缓存预留模式是根据需求从数据存储缓存加载数据。这种模式可以提⾼性能,并有助
于维 在基础数据存储在⾼速缓存中保 的数据和数据之间的⼀致性。
背景和问题
应⽤程序使⽤的⾼速缓存来优化重复访问的数据存储中保 的信息。然⽽,它通常是
不切实际的期望缓存的数据将始终与在数据存储器中的数据完全⼀致。应⽤程序要实
现⼀种策略,有助于确保在⾼速缓存中的数据是最新的,只要有可能,但也可以检测
和处理的过程中出现,当在⾼速缓存中的数据已经变得陈旧的情况。
解决⽅案
许多商业缓存系统提供通读和直写式/后写操作。在这些系统中,应⽤程序通过引⽤⾼
速缓存中检索数据。如果数据不在缓存中,它被透明地从数据存储中检索并添加到⾼
速缓存。任何修改在⾼速缓存中保 的数据被⾃动地写⼊到数据存储区以及。
为缓存不提供此功能,则使⽤该缓存保 在⾼速缓存中的数据的应⽤程序的责任。
⼀个应⽤程序可以通过实现⾼速缓存预留战略模拟的读式⾼速缓存的功能。这种策略
有效地将数据加载需求的⾼速缓存。图 1 总结了在该过程中的步骤。
图1 - 使⽤Cache-除了图案来将数据存储在⾼速缓冲存储器
如果⼀个应⽤程序将更新的信息,它可以模拟通写策略如下:
根据修改到数据存储
作废对应的项在缓存中。
当该项⽬被下⼀个需要,可使⽤⾼速缓存预留策略将导致从数据存储中检索和重新添
加到⾼速缓存中的更新数据。
问题和注意事项
在决定如何实现这个模式时,请考虑以下⼏点:
缓存数据的⽣命周期。很多缓存实现⼀个过期策略,导致数据⽆效,并从缓存
中移除如果它不是在指定时间内访问。对于缓存⼀边是有效的,确保了过期策
略相匹配的访问⽤于使⽤数据的应⽤程序的模式。不要使有效期限太短,因为
这会导致应⽤程序不断地从数据存储中检索数据,并将其添加到缓存中。同
样,不要使保质期这么久,缓存的数据很可能会变得陈旧。记住,缓存是最有
效的相对静态的数据,或者数据被频繁地读出。
驱逐数据。最⾼速缓存具有⽐从其中数据源⾃数据存储区只有有限的⼤⼩,并
在必要时它们将收回的数据。⼤多数缓存采⽤最近最少使⽤的政策选择项⽬驱
逐,但是这可能是定制的。配置全局到期属性和⾼速缓存的其它性能,并且每
个⾼速缓存项的到期属性,以帮助确保缓存成本效益。它可能并不总是适合于
⾼速缓存中的应⽤全球驱逐政策,每⼀个项⽬。例如,如果缓存项是⾮常昂贵
的,从数据存储中检索,也可能是有益的,保留在更频繁地访问但不昂贵的物
品的费⽤此产品的⾼速缓存中。
灌注缓存。许多解决⽅案,预填充⽤的应⽤程序可能需要作为启动处理的⼀部
分的数据的⾼速缓存。如果某些数据已到期,被驱逐的缓存,除了图案可能仍
然是有⽤的。
⼀致性。执⾏缓存除了图案不保证数据存储和⾼速缓存之间的⼀致性。在数据
存储中的项⽬可以在任何时候被改变由外部的过程中,这种变化可能不反映在
⾼速缓存中的项⽬被装载到⾼速缓存,直到下⼀次。在⼀个系统,整个数据存
储复制数据,如果同步发⽣⾮常频繁这个问题可能会变得尤为突出。
本地 (内存)缓存。缓存可以是本地的应⽤程序实例,并存储在内存中。缓存
预留如果应⽤程序多次访问相同的数据可以在该环境中是有⽤的。然⽽,本地
⾼速缓存是私有的,因此不同的应⽤程序实例可各⾃具有相同的缓存数据的副
本。此数据可能很快变成⾼速缓存之间不⼀致,所以它可能有必要在到期专⽤
⾼速缓存中保存的数据和更经常地刷新。在这些场景中它可能是适当的,调查
使⽤了共享或分布式缓存机制。
当使⽤这个模式
使⽤这种模式时:
缓存不提供原⽣读通过,并通过写操作。
资源的需求是不可预测的。这种模式使应⽤程序能够按需加载数据。它使任何
假设有关的数据的应⽤程序将需要提前。
这种模式可能不适合:
当缓存的数据集是静态的。如果数据将适合可⽤的⾼速缓存空间,⾸要的⾼速
缓存中的数据在启动和应⽤,防⽌数据从⽌政策。
对于托管在 Web 场中的 Web 应⽤程序缓存会话状态信息。在这种环境下,你
应该避免引⼊基于客户端 - 服务器关系的依赖。
⼦
在微软的
文档评论(0)