计算机中的缓存

  • 存储器是计算机五大组成部分之一(控制器、运算器、存储器、输入和输出),分为主存储器和辅助存储器。
  • 主存储器又称内存Memory,辅助存储器又称外存。
  • 我们平时使用的程序,如Windows操作系统、打字软件、游戏软件,一般都是安装在硬盘等外存上的,使用时才将其调入内存运行。我们平时输入一段文字,或玩一个游戏,都是在内存中进行的。
  • 就好比在一个书房里,外存相当于存放书籍的书架,内存则是我们工作的书桌。
  • 内存是计算机程序与CPU进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是战术存放CPU中的运算数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中。为了配合CPU的高速,内存和CPU之间还加了一层高速缓存。
  • 通常我们把要永久保存的、大量的数据存储在外存,而把一些临时或少量的数据和程序放在内存。

程序中的缓存

  • 当程序的并发量较高、对实时性的要求较高时,我们的程序就必须使用缓存了,否则,可能显示一个公司的报表、在搜索引擎上搜索资料都要花几分钟的时间。
  • 使用缓存,就是在取出数据结果后,暂时将数据存储在某些可以快速存取的位置,如Nosql、MemoryCache,让这些耗时的数据重复地利用,不必每次重复请求相同的数据,读取时先从缓存中找,节省CPU和io。
  • 缓存的终点在于更新,如果数据没有及时更新和删除,就会成为脏数据。

缓存策略

  • 也就是用一些算法决定什么时候清缓存、清哪一部分。

缓存控制

  • 在Java中,我们一般对方法进行缓存控制。当调用findUserById(long id)时,先从缓存查找有没有结果。没有再调用该方法从数据库加载用户,并添加到缓存中。下次调用前将会从缓存中获取数据。