如何设计一个本地缓存

如何设计一个本地缓存


"multi_version":false

前言

最近在看Mybatis的源码 , 刚好看到缓存这一块 , Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单 , 功能比较齐全的是二级缓存 , 基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西 。

考虑点

考虑点主要在数据用何种方式存储 , 能存储多少数据 , 多余的数据如何处理等几个点 , 下面我们来详细的介绍每个考虑点 , 以及该如何去实现;

1.数据结构

首要考虑的就是数据该如何存储 , 用什么数据结构存储 , 最简单的就直接用Map来存储数据;或者复杂的如redis一样提供了多种数据类型哈希 , 列表 , 集合 , 有序集合等 , 底层使用了双端链表 , 压缩列表 , 集合 , 跳跃表等数据结构;

推荐阅读