我应该在我的网络应用程序中添加缓存吗?

时间:2016-05-16 02:18:40

标签: node.js caching

我正在使用node.js网络应用,该应用主要是基于图片的公告板。我读到了一些我们总是需要缓存的地方,因为它有助于提高性能,所以通常我添加了自己的缓存,其基本上是这样的:当用户访问公告板时,缓存上传帖子的数量,再次访问时进行比较在缓存的号码和可用的帖子数量之间,如果它们相同,那么如果没有上传新帖子,则缓存的查询将启动。现在这不是代码或任何问题。我的代码工作得很完美,即使我可能已经解释错误或者给人一种错误的印象,它也会按照我的意愿行事。问题是我在完成缓存经常更新的数据错误的所有工作后阅读,这是一个公告牌,我在谈论用户总是上传图像的位置。那么最好删除或保留缓存吗?

2 个答案:

答案 0 :(得分:0)

  

“计算机科学有两个难点:缓存失效,   命名事物和逐个错误。“

     

- Phil Karlton

缓存在很大程度上取决于应用程序的类型。仅仅因为你听说“缓存总是更好”并不意味着你应该这样做。一个好的经验法则:

  • 倾向于缓存重读但很少更新的数据。
  • 在写入繁重的操作上制定缓存失效的策略。

如果您认为您将针对同一实体进行疯狂的读写操作,请考虑使用微处理,如果您对一些陈旧数据感到满意,比如不到一分钟。只需在一分钟内设置缓存的到期时间。

如果您觉得从缓存中提供服务会受益(顺便提一下,您在谈论什么样的缓存?内存中?HTTP缓存?某种后端,例如Redis / Memcached? ),有一个计划总是检查缓存,如果你在那里找不到它,从你的数据存储服务,然后缓存。然后,在POST / PATCH / DELETE调用上,通过该键使其无效。

对于公告板,您可能希望在有人发布或上传任何内容时考虑使缓存无效,然后缓存后续调用。但是,正如我所提到的,一定要制定一个无效的策略。

答案 1 :(得分:0)

添加缓存会使您的应用程序变得更加复杂。你不应该仅仅因为互联网上的一些随机人员说你应该添加它。有很多情况是缓存使事情变得更好,还有其他事情使事情变得更糟。

缓存是解决问题的方法。那么你看到了什么问题?由于重复下载,客户体验缓慢?你的服务器负载很高吗?带宽高吗?那么也许你应该添加某种缓存。

人们常常听到解决方案并努力解决问题。找出问题,然后研究解决方案。