从今年四月份以来,博客有所停更,中间发生了很多事,有坏的,也有好的,主要还是自己懈怠了,不过生活还是回到了正轨。写了这么久的博客,个人感觉主要目的还是两个:一是对已经掌握的知识进行一个总结,通过文字的方式记录下来,这样自己的理解会更加深刻;二是在后续需要用到相关知识的时候,能够通过自己的博客能够回本溯源,快速回顾相关的知识点,个人感觉在面试之前不知道复习什么的时候,博客是一份非常好的资料。
这次恢复更新,我想我的博客会做出一些调整,以往都是讲解一些技术知识点,现在主要是想总结分析工作中的一些经验。其实在工作中我渐渐发现,掌握技术知识点固然重要,但更重要的是能够学以致用,如果只是为了学习而学习,那么始终无法达到更高的层次。明朝张仲贤说“读书不是目的,而是为了求知;求知不是目的,而是为了致用”。古代先贤其实已经用简明扼要的词句告诉了我们很多道理,只是我们需要在不断试错之后才能慢慢理解其中的奥秘。年龄愈长,对古代先贤的敬畏之心就愈发强烈,内心不禁戚戚然。
一、简介
LRU Cache是我们在平常使用非常多的一种缓存,在构建高并发服务时,Redis往往由于存在网络消耗而无法达到性能要求,这个时候常用数据的本地缓存就显得尤为重要。在项目中,我们常用的本地缓存工具就是guava Cache,不过其实现原理更为复杂,本文主要讲解常用的LRU Cache的实现原理,并且讲解如何在高并发条件下实现一个LRU Cache。
二、LRU Cache实现原理
说到LRU,它的字面意思是最近最少使用,也就是说,在