如何设计一个本地缓存( 二 )

2.对象上限

因为是本地缓存 , 内存有上限 , 所以一般都会指定缓存对象的数量比如1024 , 当达到某个上限后需要有某种策略去删除多余的数据;

3.清除策略

上面说到当达到对象上限之后需要有清除策略 , 常见的比如有LRU(最近最少使用)、FIFO(先进先出)、LFU(最近最不常用)、SOFT(软引用)、WEAK(弱引用)等策略;

4.过期时间

除了使用清除策略 , 一般本地缓存也会有一个过期时间设置 , 比如redis可以给每个key设置一个过期时间 , 这样当达到过期时间之后直接删除 , 采用清除策略+过期时间双重保证;

5.线程安全

像redis是直接使用单线程处理 , 所以就不存在线程安全问题;而我们现在提供的本地缓存往往是可以多个线程同时访问的 , 所以线程安全是不容忽视的问题;并且线程安全问题是不应该抛给使用者去保证;

6.简明的接口

推荐阅读