设计一个本地缓存

注意点

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值