JVM缓存

缓存是将数据在整个程序生命周期中存储的内存;

作用:

(1)能够提升获取数据的效率,避免IO读取耗时操作;

(2)被大量的读取,更新频率低;

(3)经常变化,但是不会被持久化的;

方式:

使用static关键字开辟内存与搜索时间复杂度为O(1)的HashMap来存储数据提高读取效率;然后实现相应的缓存写入、更新、读取、删除等逻辑;

问题:

(1)上述提到缓存存活在程序应用的生命周期中,在程序应用迭代的过程中,在传统上会经历程序的重启;

spring-boot实现了热部署的功能,即在不需要对程序进行重启的情况下对程序进行迭代;

其原理就是监听class文件是否发生改变,如果改变则使用类加载其将字节码重新读入到内存中;缺点在于这种方式会占用大量的内存造成程序的卡顿,常用于本地开发中;

spring-boot提供了一个spring-boot-devtools包,其作用就是在不重启服务的情况下将服务重新部署到服务器上。原理是使用两个类加载器,一个用于加载变化的类文件,一个用于加载未发生变化的类文件,直接对未改变的类文件进行加载极大的提高整个效率。

使用第三方软件作为缓存,例如redis;

相对于hashMap的优势:

按照内外置缓存的优劣:(1)避免了程序重启导致缓存存储数据的消失。(2)在存储结构上,相对于hashMap,有更多的数据结构无模式的存储更方便; 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值