过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

PHP技术之缓存机制的好处

IT技术 • kgcwh • 发表于 7 年前 • 最后回复来自 black_mamba • 7 年前

在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法。其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率。

  除了能够提高服务的运行效率之外,服务端缓存还常常用来提高服务的扩展性。因此一些大规模的Web应用,如新浪,常常构建一个庞大的服务端缓存。而它们所最常使用的就是Memcached(内存缓存)。

  缓存的好处在于我们处理高并发或者操作数据库比较频繁的时刻,此时由于这样重复的请求或者过高的并发会导致数据库、服务器压力大到时网站运行缓慢或者服务器宕机。那么我们可以在web应用请求比较频繁的页面加上缓存,这样可以有效的缓解数据库或者服务器压力。

  那么下面来说说memcache具体的工作流程:

  如上图模拟大概的数据请求:客户端发送请求到服务器,服务器需要响应客户端请求必须返回请求数据那么此时请求的数据存在数据库中,服务器需要对应的服务器语言引擎去操作数据库并获取响应数据并回传到客户端。这是一次请求所走的一个请求过程,试想一下如果10万人或者100万人同时请求那么次过程会重复执行10万或者100万次那么对数据库与服务器的压力可想而知。

  下图我们使用缓存去处理上述请求:

  上图任然在模拟客户端的数据请求:蓝色箭头为客户端发送请求,红色箭头为服务器给客户端响应数据。与传统请求不一样的是此时我们使用了缓存,所以服务器在客户端第一次请求多了一次操作---就是拿到第一次的请求数据后在缓存里面也存放了一份(并且会设置一个生存周期,缓存不可能永久保存)。那么后续的请求(比如后5秒内)并没有去请求数据库而是从缓存直接读取从而减少了直接请求数据库对数据库所造成的压力。那么5秒过后呢?

  5秒后的第一次请求仍然会去请求一次数据库,接下来的5秒的所请求都是在访问缓存而不是直接请求数据库。

  举例说明如《新浪网》该网站是一个门户网站由于访问量大特别是某一个时段的请求可能会异常大。如早上8-10点我们会去看该网站上的最新新闻,那么这一时间段对于新闻模块的并发与请求异常多,那么该时段如果没有缓存机制该模块可能因为请求量过大而发生异常。

  所以缓存的好处很多、可以局部缓存也可以整栈缓存缓存时机可调整,缓存数据过期可自动释放。所以该技术是时机开发过程中不可或缺的技术。

加入收藏 新浪微博 分享到微信 ❤赞 2641 次点击 1 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到7条回复
sun1957 7 年前 #1 赞 0

火钳留名。PHP是最近很火的一种编程语言,感觉在哪儿都能看到相关的知识。

kgcwh 楼主 7 年前 #2 赞 0

@sun1957 PHP的势头都快要赶上java了,怎能不火

php 7 年前 #3 赞 0

unreal 7 年前 #4 赞 0

还吹php?最近不是应该上python吗

poembro 7 年前 #5 赞 0

不能一盆水浇灭楼主的激情。 社区大神确实太多,它们关注的可能是memcache源码改进,比如memcache 状态机,内存桶的模型设计,hash算法优化,数据持久化到硬盘……

jackson 7 年前 #6 赞 1

缓存数据库Redis 目前应该用的很多吧

black_mamba 7 年前 #7 赞 1

我用的是redis+MQ消息队列,现在用redis缓存的比memcache的更多,redis可以持久化存储,而且可以存在磁盘中

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
iOS 过早客没有数据,大佬们求教!
GPT-5
寻有K12教育行业软件开发经验的同学合作
你们都用哪些AI工具,求分享下~
过早客flutter版来了
亲测,鸿蒙开发奖励到手了
感觉gemini已经是一骑绝尘
分享一个拥有很多好看壁纸的插件
作为后端开发工程师,你们有中途转向机器学习/深度学习的吗?
写了个过早客的暗色插件,个人感觉很好用嘿嘿

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号