首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用缓存使网站速度更快

使用缓存使网站速度更快
EN

Webmasters Stack Exchange用户
提问于 2021-04-19 21:10:26
回答 1查看 45关注 0票数 0

我正在用node.js快速and服务器建立一个网站,我使用Mongo数据库。

在我的网站上,人们可以注册一个个人资料,他们可以上传图片和文字。

现在我经常听说,很多东西可以从缓存中加载,然后网站运行得更快。

现在,我问自己是否需要在脚本中编码一些东西来制作,例如,Mongo对请求使用缓存,或者是否需要编写任何代码来使浏览器或need服务器使用缓存中的图片。

有人能帮我理解这件缓存的事吗?

EN

回答 1

Webmasters Stack Exchange用户

发布于 2021-04-20 10:06:54

实现服务器端缓存通常是使您的web应用程序更好地执行的最佳方法。这样做的目的是在请求之间的内存中本地存储数据,以减少数据库查找。

  1. 第一次请求/page
  • 页面内容的数据库命中(100 of )
  • 在本地缓存中存储内容(10 in )
  • 将页面返回给用户(100 to )
  • 总申请时间:210
  1. /page的所有后续请求
  • 从本地缓存(10 of )获取页面内容
  • 将页面返回给用户(100 to )
  • 总申请时间:110

Node.js Express有一个模块本地缓存:https://www.npmjs.com/package/node-cache

您还可以使用基于梅卡奇雷迪斯的网络缓存。它们非常适合在多台服务器上运行的分布式web应用程序,因为缓存是在所有服务器之间分布和共享的。尽管它们比本地内存缓存慢一点,但它们可以具有更大的容量,可供多个web服务器使用,并且不占用web服务器本身上的内存资源。下面是一篇关于在node.js express:Express.js的简单服务器端缓存中使用它们的文章,下面是两者的比较:缓存- Memcached对Redis?-堆栈溢出

不管您是否使用缓存,您应该研究的另一种技术是减少每个页面的数据库查询。理想情况下,每个页面只对主要内容进行一个数据库查询。然而,一个页面进行多个甚至几十个数据库查询是非常常见的。特别要注意以下情况:

代码语言:javascript
复制
list = db_query("select product_id from products where product_category=?", page.category)
for itemid in list {
   item = db_query("select product_name from products where product_id=?", itemid)
}

应该用以下单个db查询替换该查询:

代码语言:javascript
复制
products = db_query("select product_name, product_id from products where product_category=?", page.category)
票数 1
EN
页面原文内容由Webmasters Stack Exchange提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webmasters.stackexchange.com/questions/134077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档