java缓存是什么

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.概念

缓存是实际工作中非常常用的一种提高性能的方法。而在java中,所谓缓存,就是将程序或系统经常要调用的对象存在内存中,再次调用时可以快速从内存中获取对象,不必再去创建新的重复的实例。

2.使用原因

作为一般系统架构来说,无非只是MVC的垂直型架构亦或者是分布式SOA架构,换句话说业务层一般都是服务层——持久化层——数据层,真正在实用中80%的访问对应着大概20%-30%的数据,当某一部分数据访问比例超过一半时,我们就要考虑将这一部分数据进行缓存,即将这部分数据变成热数据。尤其是高并发系统,当不设立缓存数据时,所有的请求将全部下沉到数据层即全部在关系型数据库中读取,所有的关系型数据库的读取都会涉及到磁盘IO操作,当IO读取阻塞时,数据库连接池将被使用殆尽,从而造成客户体验度下降

3.两种模式

内存缓存:缓存数据存放在服务器的内存空间中。

优点:速度快。 缺点:资源有限。

文件缓存:缓存数据存放在服务器的硬盘空间中。

优点:容量大。 缺点:速度偏慢,尤其在缓存数量巨大时。

4.缓存方法

(1)jvm内置缓存

用static hashMap基于内存缓存的jvm内置缓存,简单不实用,保对象的有效性和周期无法控制,容易造成内存急剧上升。常用的有Oscache(主要针对jsp页面),Ehcache(主要针对数据库访问层),Jcache,Jbosscache等等很多;

2)Redis

关系型数据库:持久、主外键、编写SQL语句、存放在硬盘。

非关系型数据库:一般用于缓存、值存放在内存(所以效率是真的高)、key-vakye形式、容易数据丢失(不过很好解决)、有点小类似jvm内置缓存(不过这个更牛嗨,因为可以多个服务器间共享数据)。

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容