美文网首页
使用WeakHashMap创建具有过期时间的本地缓存

使用WeakHashMap创建具有过期时间的本地缓存

作者: 断臂残猿 | 来源:发表于2018-08-30 00:11 被阅读0次

申明:本文已迁移到百家号http://baijiahao.baidu.com/s?id=1641181852243762554,欢迎移步


首先恭喜简书终于支持了LeTax公式直接编辑!

不得不说终于追上知乎的水平了。


言归正传。
java中为了让程序员能参与到垃圾回收机制中(不是说java的GC是全自动的吗?这要看从哪个方面讲了,其实如果开发人员能熟练掌握java的gc原理,对提升系统的稳定性有极大帮助),设计了4种引用级别:分别是强引用(new 出来的)、软引用、弱引用和虚引用。

本文不打算介绍这几种引用的用法。还不了解它们的读者可以自行百度(国内的几个搜索引擎,还是百度 最适合程序员)。
不过如果能使用谷歌的还是要使用谷歌,因为各个级别都有大坑,使用不当可能完全发挥不了期望的效果。但是国内很少有文章讲其中的注意事项,可能是使用的场景太少了。而国外(比如dzone)的博客就不少。

弱引用的对象在每次垃圾回收的时候都会被处理掉。WeakHashMap就是利用了这个特性来实现的本地缓存。

WeakHashMap的具体用法也请百度。这里假设你已经在用WeakHashMap了

WeakHashMap实现的缓存虽然好用,但是不具备定时过期的特性。如果没有等到垃圾回收(或者我不去看监控根本不知道是否进行过垃圾回收),但是想更新缓存之值,就无能为力了!

所以这里我们个WeakHashMap增加一个过期时间:

本文已迁移到百家号http://baijiahao.baidu.com/s?id=1641181852243762554,欢迎移步

相关文章

  • 使用WeakHashMap创建具有过期时间的本地缓存

    申明:本文已迁移到百家号http://baijiahao.baidu.com/s?id=1641181852243...

  • DiskLruCache本地缓存的使用,利用RecycleVie

    DiskLruCache使用的步骤 创建缓存路径 创建DiskLruCache实例 加载缓存先判断本地是否有缓存,...

  • localStorage缓存

    本地缓存Storage localStorage及sessionStorage使用(没有过期时间,不清空就一直在)...

  • 浅谈浏览器控制缓存的策略

    强缓存 服务器返回过期时间,客户端在该时间内发送的请求都会在本地缓存内查找; 协商缓存 当前时间超过了过期时间,客...

  • 双十一某电商缓存失效及其解决方案

    概述 缓存失效就是在 nginx 中设置本地缓存时设置了一个过期时间,比如是 10 分钟, 10 分钟后会自动过期...

  • 缓存总结

    使用频繁的数据都应考虑使用缓存 数据量少,发生变化几率小,可考虑缓存固化。即本地缓存设置有效期。过期机制:最后访问...

  • 缓存过期算法相关点

    常用缓存过期算法 LRU 最近最少使用 LRU缓存过期算法 最近最少使用的对象最先被删除 原理在Android中,...

  • Redis 缓存设计原则

    基本原则 只应将热数据放到缓存中 所有缓存信息都应设置过期时间 缓存过期时间应当分散以避免集中过期 缓存key应具...

  • 对于缓存,你可能一直理解错了!

    这篇文章我结合我自己使用缓存的历程,谈谈我对缓存的认识。 01 本地缓存 1. 页面级缓存 我使用缓存的时间很早,...

  • Guava cache使用总结

    缓存分为本地缓存和远端缓存。常见的远端缓存有Redis,MongoDB;本地缓存一般使用map的方式保存在本地内存...

网友评论

      本文标题:使用WeakHashMap创建具有过期时间的本地缓存

      本文链接:https://www.haomeiwen.com/subject/rxfkwftx.html