前言
对于缓存Java这个社区当中存在着很多;之前的文章里面也有讲到分布式的缓存技术Redis。但是有些时候,我们的项目只想简单的优化下。
例如:页面上一些经常不会进行Update操作的数据进行加载到缓存当中,避免刷新时重复加载请求数据库。最近做的这一个项目里面,首先的类别信息,和公告等信息就需要放在缓存当中。当时提出来使用Redis进行缓存,但是作为内部使用的论坛,并发访问量不是特别大的情况下增加这样一个缓存技术,就有些显得大材小用。那么就需要自己使用Java简单的写一个缓存,适当的优化一下:“减少数据库的访问”。同时在这里面我也会记录一些,关于在完成这个项目的时候,我们小组之间对于代码层面的一些优化,或者是规范吧。
灵感来源
设计想法
上面的前言
当中提到了,减少项目当中引入,避免大材小用,就没有使用Redis这样的缓存技术。只是在本项目当中作为一个工具类的形式进行使用。
首先,我就很块想到了使用Map
来实现,但是无法判断缓存当中数据是否过期?数据如果不存在缓存当中时,如何重新加载进入缓存,缓存当中数据的key不可重复。
设计时,我就需要考虑到这些问题。
然后,缓存当中不存在数据时,我就需要使用回调函数进行重新加载数据放入缓存当中,同时返回回调函数所得到的数据。
最后,该工具类当中所暴露出来的接口能够满足项目项目当中对缓存数据进行”增删查”的要求。
好了,有了这些想法,我就使用了
ConcurrentHashMap
这个数据结构来实现,我的这个缓存工具类。
看看代码
先上代码,寥寥几十行。
1 |
|
– 未完待续….
联系
聪聪的独立博客 ,一个喜欢技术,喜欢钻研的95后。如果你看到这篇文章,千里之外,我在等你联系。