为什么使用ehcache而不是直接存储静态类型list或map里?

findshine 2017-07-25 11:10:46
新手求解!

直观意义理解缓存就是为了存放数据,那么针对进程存在的ehcache 为什么要使用呢,而不是直接做一个static类型的list或map或ConcurrentHashMap来存放数据呢?
好处是什么 ,求解
...全文
676 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tandy 2019-01-17
  • 打赏
  • 举报
回复
static 的 list 或 map 确实可以起到缓存的作用, 但是实际开发中,我们对缓存要求较高; 当我们有较大缓存需求时,我们需要单独使用一台服务器作为缓存服务器,使用 static 容器 是无法做到这一点的。 缓存需要有缓存回收策略,这些逻辑写到应用中显然是不合适的。 ...... 简单的说这是一种设计模式,不过通过以上2点也足以说明他们之间的区别
weixin_39440342 2019-01-16
  • 打赏
  • 举报
回复
我就说几个应用场景吧: 数据ttl 数据search 数据不可丢失,需持久化
li_harry 2017-07-29
  • 打赏
  • 举报
回复
楼上的大神,我有个关于ehcache的问题,项目中遇到的,就是页面列表添加一条数据之后,重复的刷新页面,有时候显示的添加之前的数据,有时候添加的数据也正常显示。请问这是怎么回事?
findshine 2017-07-27
  • 打赏
  • 举报
回复
引用 4 楼 tianfang 的回复:
多服务器共享 节省内存
第一点我赞同,第二点感觉和 map 差不多
findshine 2017-07-27
  • 打赏
  • 举报
回复
引用 5 楼 tianfang 的回复:
ehcache中存储大量的热数据,但是服务器每次用到的很少。比如:百万级的在线用户信息,而一个web服务线程只需要一个用户的信息
貌似看到现在 ehcache 相对 map 只是能多服务器共享,但是同一台服务器使用map 存储或 cache 存储 感觉占用内存量就几乎没有差异了,毕竟占用字节数都是内存的实际占用
findshine 2017-07-27
  • 打赏
  • 举报
回复
引用 3 楼 minemine0418 的回复:
[quote=引用 2 楼 fandoc 的回复:] [quote=引用 1 楼 minemine0418 的回复:] 你什么都用static会导致内存不足的。。。。。
不明白为什么,我想问下比如我做个LIST存放100个Key,值也是100个,我用EHCACHE也是同此,我理解的占用内存的总数应该是一致的,如果差也差不了多少 这个应该不是最好的解释??[/quote] 你可以理解为,持久层从数据库查询出来的对象,交给ehcache保管,下次持久层再需要的时候ehcache直接返回给持久层,不查询数据库;当持久层需要改变某数据时,会让ehcache更新直接的备份并且保存到数据库..所以使用缓存技术能提升性能,减少与数据库的交互[/quote]数据库方面用 ehcache 这个我知道,我是想问内存中存储数据 相对 map 的优势
tianfang 2017-07-26
  • 打赏
  • 举报
回复
ehcache中存储大量的热数据,但是服务器每次用到的很少。比如:百万级的在线用户信息,而一个web服务线程只需要一个用户的信息
tianfang 2017-07-26
  • 打赏
  • 举报
回复
多服务器共享 节省内存
findshine 2017-07-25
  • 打赏
  • 举报
回复
引用 1 楼 minemine0418 的回复:
你什么都用static会导致内存不足的。。。。。
不明白为什么,我想问下比如我做个LIST存放100个Key,值也是100个,我用EHCACHE也是同此,我理解的占用内存的总数应该是一致的,如果差也差不了多少 这个应该不是最好的解释??
minemine0418 2017-07-25
  • 打赏
  • 举报
回复
你什么都用static会导致内存不足的。。。。。
minemine0418 2017-07-25
  • 打赏
  • 举报
回复
引用 2 楼 fandoc 的回复:
[quote=引用 1 楼 minemine0418 的回复:] 你什么都用static会导致内存不足的。。。。。
不明白为什么,我想问下比如我做个LIST存放100个Key,值也是100个,我用EHCACHE也是同此,我理解的占用内存的总数应该是一致的,如果差也差不了多少 这个应该不是最好的解释??[/quote] 你可以理解为,持久层从数据库查询出来的对象,交给ehcache保管,下次持久层再需要的时候ehcache直接返回给持久层,不查询数据库;当持久层需要改变某数据时,会让ehcache更新直接的备份并且保存到数据库..所以使用缓存技术能提升性能,减少与数据库的交互

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧