缓存就是web的一切

dns查询过后,我们可以缓存起来,实现dns的缓存。图片预览之后,我们可以通过cdn缓存起来。数据库查询出结果之后,我们可以把数据缓存到内存数据库redis中。这种方法是当我们查询数据和缓存不一致的时候,我们不去直接更新它,而仅仅是删除它,当查询缓存失效的时候,会间接更新它。可以说掌握了缓存,才是掌握了web核心。

web经历了从1.0到3.0的变迁,现在的它已经和最初的样子有了天翻地覆的变化,然而无论怎么变迁网站后台数据库缓存,人们对于web最关注的点还是它的速度。

一个5秒钟没有打开的网页,无论你的内容再怎么优秀,无论你的效果再怎么出色,大部分人都会选择关掉它,因为你浪费了用户的时间,而对于用户,时间是最宝贵的。

如何提升网站的响应速度,我们可能会优化程序的代码结构,可能会改进代码的复杂逻辑,可能会优化程序语言,然而这些一切一切的优化,都不如缓存优化显得那么出色。

缓存

asp网站后台系统管权限数表数据库设计据库_网站数据删库跑路_网站后台数据库缓存

什么是缓存,缓存就是一个可以保存查询结果的介质。

dns查询过后,我们可以缓存起来,实现dns的缓存。

图片预览之后,我们可以通过cdn缓存起来。

数据库查询出结果之后,我们可以把数据缓存到内存数据库redis中。

网页组装之后,我们可以缓存结果到varnish中。

缓存不是万能的,但是没有缓存是万万不能的。

总之,一切皆可以缓存。

时效性

不知道你有没有过这种体验,明明修改了css的样式,但是浏览器却使用原来的样式。这是因为浏览器缓存了css的样式,而这也是缓存的一个弊端,有些时候不能及时展示最新的数据情况。

asp网站后台系统管权限数表数据库设计据库_网站数据删库跑路_网站后台数据库缓存

有些时候我们已经修改了某个模板变量,但是程序依然没有改变,这是因为这个时候模板进行了文件缓存,而我们没有清除缓存。

数据库里面的值已发什么变化,但是从redis查询出来的数据依然是旧的数据。

这些缓存数据不一致的问题,都是平时我们使用缓存经常遇到的,而如何避免它们,是我们需要不断学习研究的。

更新缓存

虽然缓存的数据大部分时间是不变的,但是毕竟它也有需要变化的时候。更新缓存主要有下面的二种方法。

直接更新法。当我们的数据和缓存不一致的时候,我们可以通知缓存将我们查询的数据重新缓存,也就是查询之后,立即更新对应的缓存。缓存删除法。这种方法是当我们查询数据和缓存不一致的时候,我们不去直接更新它,而仅仅是删除它,当查询缓存失效的时候,会间接更新它。多级缓存和锁

我们都知道缓存有惊群的时候,就是当多个请求同时到来的时候,如果恰巧它们请求的这个缓存失效,那么所有请求将直接交给后台数据库去处理,这就会导致数据库压力过大而挂掉,而这就是惊群。也就是本应该一个请求去后台请求数据即可,现在多个请求同时去后台请求数据,造成了资源的浪费和数据库宕机。

为了避免这种情况,我们可以加一个锁,每次同一个key的缓存,只允许一个请求去后台查询数据库,其它的等待查询的结果。

当然我们还可以设置多级缓存,就是一级缓存失效的时候,二级缓存依然可以拦截部分流量。

总之,就是让请求尽可能地落在缓存上面。

总结

无论是cms网站网站后台数据库缓存,还是电商网站,抑或是直播平台,一切都离不开缓存,缓存帮助我们使用最少的服务器资源却承载了最大的并发请求。

可以说掌握了缓存,才是掌握了web核心。

原创文章,作者:第一财经,如若转载,请注明出处:https://baike.d1.net.cn/1446118.html