1.背景介绍
作为一个优秀的开发者,我们应该深入理解我们的开发环境所运行的开源框架,掌握它们的设计理念、实现机制、适用场景以及运行效率等方面的知识。了解这些信息对我们更好的进行工程化规划,避免在开发过程中的重复造轮子,提高应用的质量和效率。下面简要介绍一下缓存技术以及框架的缓存实现方式。
一、缓存技术
缓存(Cache)是一种高速存储器,它主要用于存储热点数据,如最近访问过的数据,以提升系统的响应速度。通过缓存,可以减少数据库查询次数,缩短响应时间,从而提升用户体验。现代计算机系统都普遍使用缓存技术,缓存技术的引入能够极大的提高系统的处理性能。
缓存分为硬件缓存和软件缓存两种。硬件缓存指的是CPU自带的高速缓冲存储器,其大小一般几十兆到几百兆不等,容量比普通内存小很多,但访问速度快,往往用于存放频繁使用的指令及数据。软件缓存则由内存里的某个区域或文件组成,通过操作系统提供的接口访问数据,大小通常大于等于主存,容量取决于磁盘空间,但速度远低于硬件缓存。由于软件缓存的空间大小限制,所以只能缓存部分数据,即使频繁访问的数据也会缓存在软件缓存中。
软件缓存包括进程级缓存、线程级缓存和分布式缓存三种。进程级缓存指的是每个进程独享的一块内存空间,所有线程共享此缓存,同时支持读写操作,但同时只能有一个线程操作缓存,这就可能导致缓存数据的一致性问题。线程级缓存是指每个线程独享的一块缓存空间,彼此之间独立,可实现不同线程并行操作缓存,缺点是需要更多的缓存空间。分布式缓存又称集群缓存,指将缓存分布到多台服务器上,以降低单个节点的负载压力。
缓存有两种主要的策略,命中策略(Hit Strategy)和失效策略(Miss Strategy)。命