累了的时候看看这个 |
在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法。其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率。
除了能够提高服务的运行效率之外,服务端缓存还常常用来提高服务的扩展性。因此一些大规模的Web应用,如新浪,常常构建一个庞大的服务端缓存。而它们所最常使用的就是Memcached(内存缓存)。
缓存的好处在于我们处理高并发或者操作数据库比较频繁的时刻,此时由于这样重复的请求或者过高的并发会导致数据库、服务器压力大到时网站运行缓慢或者服务器宕机。那么我们可以在web应用请求比较频繁的页面加上缓存,这样可以有效的缓解数据库或者服务器压力。
如上图模拟大概的数据请求:客户端发送请求到服务器,服务器需要响应客户端请求必须返回请求数据那么此时请求的数据存在数据库中,服务器需要对应的服务器语言引擎去操作数据库并获取响应数据并回传到客户端。这是一次请求所走的一个请求过程,试想一下如果10万人或者100万人同时请求那么次过程会重复执行10万或者100万次那么对数据库与服务器的压力可想而知。
上图任然在模拟客户端的数据请求:蓝色箭头为客户端发送请求,红色箭头为服务器给客户端响应数据。与传统请求不一样的是此时我们使用了缓存,所以服务器在客户端第一次请求多了一次操作---就是拿到第一次的请求数据后在缓存里面也存放了一份(并且会设置一个生存周期,缓存不可能永久保存)。那么后续的请求(比如后5秒内)并没有去请求数据库而是从缓存直接读取从而减少了直接请求数据库对数据库所造成的压力。那么5秒过后呢?
5秒后的第一次请求仍然会去请求一次数据库,接下来的5秒的所请求都是在访问缓存而不是直接请求数据库。
举例说明如《新浪网》该网站是一个门户网站由于访问量大特别是某一个时段的请求可能会异常大。如早上8-10点我们会去看该网站上的最新新闻,那么这一时间段对于新闻模块的并发与请求异常多,那么该时段如果没有缓存机制该模块可能因为请求量过大而发生异常。
所以缓存的好处很多、可以局部缓存也可以整栈缓存缓存时机可调整,缓存数据过期可自动释放。所以该技术是时机开发过程中不可或缺的技术。
过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号