日期:2014-05-20  浏览次数:20663 次

缓存与java的内存
我们知道,当从数据库查询到大量数据的时候,会占用大量的内存资源,
所以我们一般都把数据放到缓存当中,只取当前页的数据。
我想问几个问题:1)缓存中的数据占不占用内存空间?
  2)假如有1W条数据在缓存中,
  我启用多个线程依次将数据取出来,那么这个时候内存的占用会怎么着?
  假设条件一次取出的话会内存溢出,我这样分多个线程依次将数据查询出来,
  会不会也会内存溢出。
  3)大家能否推荐一下这方面的资料?小弟比教菜,但是最近要研究这方面的知识。

请教。。。。。

------解决方案--------------------
缓存不也是内存么
会不会溢出关键看某一个时刻内存使用量是不是超出了某一领域(比如jvm)的承载量
------解决方案--------------------
通常来说缓存就是在内存中,不然的话你弄个缓存文件,每次IO,效率反而不高,
分页查询也不是把多余的数据放缓存中,而只是查了当前页的数据,其它的还有数据库中,
假如你已经把1W条数据放入缓存了,读的时候不会增加内存的使用量,那怎么还会溢出呢?
------解决方案--------------------
你查询用的缓存也是内存,一页这个概念也很空泛,20条可以称为一页,1千条也能称为一页,溢不溢出得看你取出的数据是否比当前所剩的内存大。