如何设计一个本地缓存
"multi_version":false
前言
最近在看Mybatis的源码 , 刚好看到缓存这一块 , Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单 , 功能比较齐全的是二级缓存 , 基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西 。
考虑点
考虑点主要在数据用何种方式存储 , 能存储多少数据 , 多余的数据如何处理等几个点 , 下面我们来详细的介绍每个考虑点 , 以及该如何去实现;
1.数据结构
首要考虑的就是数据该如何存储 , 用什么数据结构存储 , 最简单的就直接用Map来存储数据;或者复杂的如redis一样提供了多种数据类型哈希 , 列表 , 集合 , 有序集合等 , 底层使用了双端链表 , 压缩列表 , 集合 , 跳跃表等数据结构;
推荐阅读
- 明日方舟|明日方舟:早露皮肤的攻击动作设计得很出彩,化身成白熊的指挥员
- 小鱼人|如何在新赛季稳定上分?善于抓失误的小鱼人,值得认真练上一波
- 设计师|魔兽世界:9.1.5刚上线,就要9.2了?来看设计师爆料的更多细节
- 雷神|原神:曾经有一个强力五星角色,却因各种“流言蜚语”,擦肩而过
- 阴阳师|阴阳师SR川猿强度如何 是否值得抽卡 改变斗技环境 大佬的新玩具
- 手机游戏|梦幻西游手游:活力如何换金币 一切都已给出 就看你的选择
- 次世代|韩国战队全军覆没,斗鱼选手实力强大,一人击溃一个队
- 手机游戏|LOL手游第一个世界赛,破晓杯火热开战,DKG能紧随EDG夺冠吗?
- 华佗|三国杀:两位\奶爸\,朱治与华佗比,强度如何呢?
- 亲朋上分|《亲朋上分》266391亲朋下分亲朋上下分永劫无间崔三娘技能介绍 崔三娘如何获得更多技能