设计一个本地缓存

注意点

  1. 数据结构: 设计用什么数据结构存储。最简单的就直接用Map来存储数据,或者复杂想redis一样提供了多种数据类型哈希,列表,集合,有序集合等,底层使用了双端链表,压缩列表,集合,跳跃表等数据结构
  2. **对象上限:**本地缓存,内存有上限,所以一般都会制定缓存对象的数量比如1024,当达到某个上线后需要有某种策略去删除多余的数据
  3. **清除策略:**常见的比如有LRU(最近最少使用),FIFO(先进先出),LFU(最近最不常用)。
  4. 过期时间: 除了使用清楚策略,可以给缓存设置一个过期时间,这样当达到过期时间之后直接删除,采用清楚策略+过期时间双重保证。
  5. 线程安全: 像redis是直接使用单线程处理,所以就不存在线程安全问题。而现在提供的本地韩村往往是可以多个线程同时访问的,所以线程安全是不容忽视的问题,并且线程安全问题是不应该抛给使用者去保证。
  6. **简明的接口:**提供常用的get,put,remove,clear,getSize等方法即可。
  7. 是否持久化:分布式缓存如Redis是有持久化功能的,memcached是没有持久化功能的。
  8. 阻塞机制: 二级缓存提供了一个blocking表示,表示当在缓存中找不到元素时,它设置对缓存键的锁定;这样其他线程将等待此元素被填充,而不是命中数据库。

你可能感兴趣的:(笔记,缓存)