新手求解!直观意义理解缓存就是为了存放数据,那么针对进程存在的ehcache 为什么要使用呢,而不是直接做一个static类型的list或map或ConcurrentHashMap来存放数据呢?
好处是什么 ,求解

解决方案 »

  1.   

    你什么都用static会导致内存不足的。。
      

  2.   


    不明白为什么,我想问下比如我做个LIST存放100个Key,值也是100个,我用EHCACHE也是同此,我理解的占用内存的总数应该是一致的,如果差也差不了多少
    这个应该不是最好的解释??
      

  3.   


    不明白为什么,我想问下比如我做个LIST存放100个Key,值也是100个,我用EHCACHE也是同此,我理解的占用内存的总数应该是一致的,如果差也差不了多少
    这个应该不是最好的解释??
    你可以理解为,持久层从数据库查询出来的对象,交给ehcache保管,下次持久层再需要的时候ehcache直接返回给持久层,不查询数据库;当持久层需要改变某数据时,会让ehcache更新直接的备份并且保存到数据库..所以使用缓存技术能提升性能,减少与数据库的交互
      

  4.   

    ehcache中存储大量的热数据,但是服务器每次用到的很少。比如:百万级的在线用户信息,而一个web服务线程只需要一个用户的信息
      

  5.   


    不明白为什么,我想问下比如我做个LIST存放100个Key,值也是100个,我用EHCACHE也是同此,我理解的占用内存的总数应该是一致的,如果差也差不了多少
    这个应该不是最好的解释??
    你可以理解为,持久层从数据库查询出来的对象,交给ehcache保管,下次持久层再需要的时候ehcache直接返回给持久层,不查询数据库;当持久层需要改变某数据时,会让ehcache更新直接的备份并且保存到数据库..所以使用缓存技术能提升性能,减少与数据库的交互数据库方面用 ehcache 这个我知道,我是想问内存中存储数据 相对 map 的优势
      

  6.   

    貌似看到现在 ehcache 相对 map 只是能多服务器共享,但是同一台服务器使用map 存储或 cache 存储 感觉占用内存量就几乎没有差异了,毕竟占用字节数都是内存的实际占用 
      

  7.   

    第一点我赞同,第二点感觉和 map 差不多
      

  8.   

    楼上的大神,我有个关于ehcache的问题,项目中遇到的,就是页面列表添加一条数据之后,重复的刷新页面,有时候显示的添加之前的数据,有时候添加的数据也正常显示。请问这是怎么回事?
      

  9.   

    我就说几个应用场景吧:数据ttl
    数据search
    数据不可丢失,需持久化
      

  10.   

    static 的 list 或 map 确实可以起到缓存的作用,
    但是实际开发中,我们对缓存要求较高;
    当我们有较大缓存需求时,我们需要单独使用一台服务器作为缓存服务器,使用 static 容器 是无法做到这一点的。
    缓存需要有缓存回收策略,这些逻辑写到应用中显然是不合适的。
    ......
    简单的说这是一种设计模式,不过通过以上2点也足以说明他们之间的区别