js 引入 缓存

几周前,我参加了ThoughtWorks 技术雷达研讨会。 我在ThoughtWorks工作了多年,并认为如果有人知道这些人在软件开发方面的发展趋势如何。 在技​​巧上带有上升箭头的数字中,第17位被称为“周到缓存”。 和斯科特·肖一起喝酒时,我问他是什么意思。

趋势是从响应式缓存过渡到新样式。 所谓React式,是指您发现系统在构建后无法运行或无法扩展,并且已经投入生产。 许多Ehcache用户都采用这种方式。 我很高兴看到这一趋势。

故意缓存

新技术是:

  • 主动的
  • 计划
  • 在系统上线之前实施
  • 商榷
  • 不仅仅是在您的框架中打开缓存并希望获得最佳效果–这是考虑周到的部分
  • 了解负载特征和数据访问模式
我们为此添加了一些名称,并提出了“ 故意缓存”来总结所有这些内容。
我们正在为基于Java和JVM的语言JSR107标准化缓存所做的工作将仅有助于此过渡。 它会包含在Java EE 7中,即使对于那些对遵循EE失去兴趣的人,它仍然会发出信号,表明这是一个体系结构决策,应谨慎制定。

为什么花了这么长时间?

那么,为什么要等到Ehcache和Memcache以及其他许多人相继出现这种十年之后才出现这种“新”趋势? 我认为有几个原因。

有人认为缓存很脏

我遇到了很多认为缓存很脏的开发人员。 缓存是作弊行为。 他们认为这表明某些架构设计失败,最好以其他方式解决。
原因之一是许多早期和开源缓存(包括Ehcache)限制了可以实现的数据安全性。 因此,通常的情况是缓存中的数据可能但不确定是正确的。 需要与业务分析师进行复杂的讨论,以确定这是否可以接受以及如何允许过时的数据。 诸如Enterprise Ehcache之类的企业缓存的出现已经克服了这一问题,之所以如此命名是因为它们具有丰富的功能并包含广泛的数据安全性选项,包括在Ehcache的情况下:弱一致性,最终一致性,强一致性,显式锁定,本地和XA交易和原子操作。 因此,即使数据必须正确,您也可以使用缓存。

跟随巨型互联网公司的领导

发生的另一件事是,作为巨型互联网公司,它无法逃脱任何人注意到它们都使用大量缓存的注意。 而且如果缓存层出现故障,它们将无法工作。 如此之多,以至于如果您要构建大型的.com应用程序,那么显然需要在其中构建缓存层。

早期性能优化被视为一种反模式

在“敏捷”下,我们专注于可能可行的最简单的事物。 要求会不断变化。 您对将来的要求采取的任何批评都会被证明是错误的,并且浪费了您的精力。 仅在明确需要时才添加它们。 性能和可伸缩性也往往以这种方式完成。 按照此模型,在将应用程序投入生产后,您会发现有关要求的信息,但该要求失败了。 这种相同的思维方式导致构建具有单个数据存储的整体式系统,后来证明需要进行昂贵的重新架构。

我认为我们需要将其视为能力计划。 如果我们在项目开始时获得了估计的用户数量,所需的响应时间,数据量,访问模式等信息,那么我们就可以对架构以及硬件进行容量规划。 在该体系结构规划中,我们可以计划使用缓存。 因为缓存会影响系统的架构方式和硬件要求,所以这样做很有意义。

参考:在Greg Luck的Blog上 ,我们的JCG合作伙伴 Greg Luck 介绍了故意缓存 。

相关文章 :

  • 新的Java缓存标准(javax.cache)
  • 具有GlassFish和一致性的高性能JPA –第1部分
  • Spring 3.1缓存抽象教程
  • Spring 3.1和JPA的持久层
  • JBoss 4.2.x Spring 3 JPA Hibernate教程
  • GWT Spring和Hibernate进入数据网格世界

翻译自: https://www.javacodegeeks.com/2012/01/introducing-deliberate-caching.html

js 引入 缓存

js 引入 缓存_引入故意缓存相关推荐

  1. 记忆化搜索 递归缓存_需要微缓存吗? 营救记忆

    记忆化搜索 递归缓存 缓存解决了各种各样的性能问题. 有很多方法可以将缓存集成到我们的应用程序中. 例如,当我们使用Spring时,可以轻松使用@Cacheable支持. 非常简单,但我们仍然必须配置 ...

  2. 交换机分布缓存_网络交换机缓存在数据中心的作用

    什么产生了缓存?网络交换机要配置多少缓存才够用?缓存容量是否有标准可以衡量? 当网络交换机接口收到超出其所能处理的流量后,它会选择要么将其缓存,或者将其丢弃. 缓存通常都是因为网络接口速率不同造成的, ...

  3. ehcache 手动刷新缓存_清空DNS缓存的两个小方法

    什么是DNS缓存?这个缓存有什么危害?相信大家平时使用浏览器时,有时候会遇到一个很奇怪的问题,就是Mac打开许多网站如百度网站,都是可以访问的,但是在打开某个特定网站时,却发现浏览器提示检测不到网络连 ...

  4. ecshop清除mysql缓存_禁用ecshop缓存,关闭ecshop缓存功能

    ECSHOP的缓存存放在temp /文章夹下,时间长了这个文件夹就会非常庞大,拖慢网站速度.还有很多情况我们不需要他的缓存.本文介绍禁用ECSHOP缓存的方法. ECSHOP的缓存有两部分,一部分是S ...

  5. spring缓存_有关Spring缓存性能的更多信息

    spring缓存 这是我们最后一篇关于Spring的缓存抽象的文章的后续文章 . 作为工程师,您可以通过了解所使用的某些工具的内部知识来获得宝贵的经验. 了解工具的行为有助于您在做出设计选择时变得更加 ...

  6. java 高性能缓存_高性能Java缓存----Caffeine

    简单介绍 Caffeine是新出现的一个高性能的Java缓存,有了它完全可以代替Guava Cache,来实现更加高效的缓存:Caffeine采用了W-TinyLFU回收策略,集合了LRU和LFU的优 ...

  7. 使用redis实现缓存_用下一个js实现一个简单的redis缓存

    使用redis实现缓存 For most websites, the changing pieces don't actually vary that often. That immutability ...

  8. TP3.2的删除缓存与引入第三方库的问题(二)

    基本每天都会遇到新的问题,不记录下来是在是有点亏.以下内容也是在做项目的时候碰到,然后百度搜索答案,记到记事本上的,在此分享给大家. 一.关于删除TP框架的缓存问题 TP的缓存不仅仅局限于runtim ...

  9. jsp进入另一个jsp分块之后js代码失效_一个架构师的缓存修炼之路

    一位七牛的资深架构师曾经说过这样一句话: " Nginx+业务逻辑层+数据库+缓存层+消息队列,这种模型几乎能适配绝大部分的业务场景. 这么多年过去了,这句话或深或浅地影响了我的技术选择,以 ...

最新文章

  1. Python操作SQLite3
  2. EXCEL文件单独打开和单独关闭
  3. zzuli 2269:minval
  4. 这些黑科技让百姓安心、安全过年
  5. Django获取request header信息
  6. SAP License:MES与ERP系统如何分工合作
  7. 腾讯支持html5吗,WebQQ全面升级支持IE9 充分运用HTML5优势
  8. 网络安全日志留存合规解决方案
  9. 谷歌生物医学专用翻译_翻译软件的六大测评,请专家来支招
  10. 这次是90城的数据!中国90座城市建筑物屋顶矢量数据集(2020)
  11. 记账小程序 微信小程序 源码 uniapp vue3
  12. JGIT使用的常见问题
  13. 相邻染色问题java_浅析一类要求相邻不同的环上染色问题
  14. 2021-09-10 网安实验-文件修复-BMP图片隐写
  15. python可视化:Plotting with pandas and seaborn
  16. 关于网络安全域隔离问题 你真的了解吗?
  17. python中plot线条的形状、标记符号和颜色详情
  18. 【译】 SafetyNet: Google's tamper detection - Part 2
  19. AcWing 1129 热浪
  20. 便携式显示器之手机云本 ----- 手机秒变电脑

热门文章

  1. 今天的雪糕格外好吃!
  2. 如何通过反射将字符串转换为类
  3. frameset和frame
  4. docker下安装nacos 并使用mysql数据库
  5. IP暴露接口IP白名单设置
  6. 计算字典的个数_[LeetCode] 440. 字典序的第K小数字
  7. linux 命令 抛后台,在后台运行Linux命令的方法
  8. php access allow,PHP标头不适用于Access-Control-Allow-Origin
  9. idea部署maven+javaweb项目到jboss
  10. ogm neo4j_Neo4J OGM与Quarkus