缓存架构:如何减少不必要的计算?
缓存架构是互联网应用中解决高并发情况下计算压力的一种解决方案。其核心思想是将需要多次读取的数据暂存起来,以降低数据源的计算负载压力,提高数据响应速度。缓存可以分为两种:通读缓存和旁路缓存。
通读缓存(Read-Through Cache)是一种常用的缓存机制。其工作流程是:应用程序访问通读缓存获取数据,如果通读缓存中有应用程序需要的数据,那么就返回这个数据;如果没有,那么通读缓存就自己负责访问数据源,从数据源获取数据返回给应用程序,并将这个数据缓存在自己的缓存中。这样,下次应用程序需要数据的时候,就可以通过通读缓存直接获得数据了。
通读缓存在架构中的位置与作用是:位于应用程序和数据源之间,为应用程序提供数据的缓存服务。其优点是可以降低数据源的计算负载压力,提高数据响应速度。
旁路缓存(Cache-Aside Cache)是另一种常用的缓存机制。其工作流程是:应用程序访问旁路缓存获取数据,如果旁路缓存中有应用程序需要的数据,那么就返回这个数据;如果没有,就返回空(null)。应用程序需要自己从数据源读取数据,然后将这个数据写入到旁路缓存中。这样,下次应用程序需要数据的时候,就可以通过旁路缓存直接获得数据了。
旁路缓存在架构中的位置与作用是:位于应用程序和数据源之间,为应用程序提供数据的缓存服务。其优点是可以降低数据源的计算负载压力,提高数据响应速度。
在互联网应用中,主要使用的通读缓存是CDN(Content Delivery Network)和反向代理缓存。CDN即内容分发网络,是一种将静态资源分发到世界各地的网络架构。其工作流程是:用户请求静态资源时,CDN会将静态资源缓存在最近的缓存服务器上,然后将缓存服务器上的静态资源返回给用户。这样,用户可以近距离获得自己需要的资源,降低了数据源的计算负载压力,提高了数据响应速度。
缓存架构是互联网应用中解决高并发情况下计算压力的重要解决方案。其核心思想是将需要多次读取的数据暂存起来,以降低数据源的计算负载压力,提高数据响应速度。缓存可以分为两种:通读缓存和旁路缓存。CDN和反向代理缓存是互联网应用中主要使用的通读缓存。