Java 缓存优化1 - 内存缓存

作者: 右耳菌 | 来源:发表于2022-06-08 18:33 被阅读0次

缓存及应用场景

1. 什么是缓存?

  • 缓存一般有以下三种:
  1. 硬件
  2. 客户端缓存
  3. 服务端缓存
  • 在计算中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前检索或计算的数据。

2. 应用场景

应用场景
  • 常见场景
  • 高并发查询
  • 高并发写入
  • 热点数据
  • 大对象初始化
    ...

3. 使用缓存的好处

  • 提升应用程序性能
  • 降低数据库成本
  • 减少后端负载
  • 可预测的性能
  • 消除数据库热点
  • 提高读取吞吐量(IOPS)
使用缓存的好处

4. 缓存的常用类型

  • 内存缓存(进程内缓存) 性能最好
  • 分布式缓存
  • 组合缓存(多级缓存)

缓存的特点与常见问题

1. 缓存的特点

  • 设置存活时间(过期策略)
    缓存通常设置有效期,过期后应当失效,常见的过期策略有:定时、定期、惰性失效
  • 空间占用有限(淘汰策略)
    缓存占用有空间上限,超过上限需淘汰部分缓存数据,常见的淘汰策略有:FIFO、LRU、LFU
  • 支持并发更新
    缓存需要支持并发的读取写入

2. 常见问题 - 缓存穿透

即用户发起查询时,因为要查询的内容不存在缓存中,所以要查询数据库,但是数据库中也不存在该内容。故无法匹配,也无法将该内容存至缓存中,所以导致每次查询都要直接查询数据库的情况。


缓存穿透

3. 常见问题 - 缓存击穿

即某个内容在缓存中刚刚好失效的时候,突然来了很多访问该内容的并发请求,此时所有的请求都将直接访问数据库。


缓存击穿
缓存击穿

4. 常见问题 - 缓存雪崩

大量缓存同时失效,导致大量请求穿过缓存访问到数据库。


缓存雪崩
缓存雪崩

常用内存缓存实现方式

  • Java容器
    基于JDK自带的Map容器类:HashMap、ConcurrentHashMap

  • Guava Cache
    Google提供的Java增强工具包Guava的一个模块,社区活跃

  • Ehcache
    重量级的内存缓存,支持2级缓存,Hibernate中默认的缓存框架

  • Caffeine
    基于Guava API开发的高性能内存缓存,Spring5默认的内存缓存框架


如果觉得有收获就点个赞吧,更多知识,请点击关注查看我的主页信息哦~

相关文章

  • 第一章-并发基础

    cpu多级缓存- 缓存一致性 cpu多级缓存- 乱序执行优化 JAVA内存模型【java Memory Model...

  • Java 缓存优化1 - 内存缓存

    缓存及应用场景 1. 什么是缓存? 缓存一般有以下三种: 硬件客户端缓存服务端缓存 在计算中,缓存是一个高速数据存...

  • Bitmap优化

    网络的优化 1.请求的缓存。Http请求是可以做缓存的。 三级缓存内存缓存、外部缓存算法LruCache+自定的 ...

  • YYCache 源码学习总结

    YYCache 内存分为内存缓存和磁盘缓存 内存缓存 1.内存缓存实现通过CFMutableDictionaryR...

  • iOS多图下载案例(二)

    利用缓存优化后 //UI很不流畅-》开子线程下载//图片重复下载-》缓存//内存缓存-》磁盘缓存//documen...

  • 区分SDWebImage的三种缓存

    SDWebImage的三种缓存分为:内存图片缓存、磁盘图片缓存、内存操作缓存步骤如下1、先查看内存图片缓存,内存图...

  • Glide缓存汇总

    Glide缓存汇总 1、Glide有内存缓存和磁盘缓存 2、缓存策略 3、内存缓存 4、磁盘缓存 5、缓存位置和大...

  • Redis入门到高可用-10.缓存的使用与优化

    1.概要 缓存的收益与成本 缓存更新策略 缓存粒度控制 缓存穿透优化 无底洞问题优化 缓存雪崩优化 热点key重建...

  • Centos Tomcat 调优

    Tomcat可以从内存、并发、缓存等方面进行优化 1、Tomcat内存优化: 在tomcat的启动脚本catali...

  • 基于双向链表实现自己的内存LRUCache(Java)

    本文将分为以下两个部分: 1.简介几个缓存淘汰算法 2.实现自己的LRU内存缓存(Java) 1.几种缓存淘汰算法...

网友评论

    本文标题:Java 缓存优化1 - 内存缓存

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