如何设计一个本地缓存( 六 )
if (System.currentTimeMillis() - lastClear > clearInterval) {
clear();
主动删除:专门有一个job在后台定期去检查数据是否过期 , 如果过期则删除 , 这其实可以有效的处理冷数据;
5.线程安全
尽量用线程安全的类去存储数据 , 比如使用ConcurrentHashMap代替HashMap;或者提供相应的同步处理类 , 比如Mybatis提供了SynchronizedCache:
public synchronized void putObject(Object key Object object) {
...省略...
@Override
public synchronized Object getObject(Object key) {
...省略...
6.简明的接口
提供常用的get , put , remove , clear , getSize方法即可 , 比如Mybatis的Cache接口:
public interface Cache {
String getId();
void putObject(Object key Object value);
Object getObject(Object key);
推荐阅读
- 明日方舟|明日方舟:早露皮肤的攻击动作设计得很出彩,化身成白熊的指挥员
- 小鱼人|如何在新赛季稳定上分?善于抓失误的小鱼人,值得认真练上一波
- 设计师|魔兽世界:9.1.5刚上线,就要9.2了?来看设计师爆料的更多细节
- 雷神|原神:曾经有一个强力五星角色,却因各种“流言蜚语”,擦肩而过
- 阴阳师|阴阳师SR川猿强度如何 是否值得抽卡 改变斗技环境 大佬的新玩具
- 手机游戏|梦幻西游手游:活力如何换金币 一切都已给出 就看你的选择
- 次世代|韩国战队全军覆没,斗鱼选手实力强大,一人击溃一个队
- 手机游戏|LOL手游第一个世界赛,破晓杯火热开战,DKG能紧随EDG夺冠吗?
- 华佗|三国杀:两位\奶爸\,朱治与华佗比,强度如何呢?
- 亲朋上分|《亲朋上分》266391亲朋下分亲朋上下分永劫无间崔三娘技能介绍 崔三娘如何获得更多技能