请问应该如何缓存数据多java opt设置多少合适?

缓存数据多java opt设置多少合适


慕虎7371278
浏览 322回答 4
4回答

holdtom

解决问题的思路首先就不对,什么叫JAVA中……JVM虚拟内存一般只有几百M,为何别人那么多大型系统都能跑起来?第一,大量的数据是不会考虑放在JVM内存中;第二,如果需要缓存大量的dto,动态数据(又称过程数据)一般用的是redis;如果是静态,系统启动时就加载的大量配置,一般考虑放ehcache。第三,由于redis用的是物理内存,不是JVM内存,一般情况下往redis里丢千万级别的记录数基本不影响性能,小小100w条算什么呢。

qq_花开花谢_0

内存数据库有现成的redis,高效存取键值对,键设为你的查询条件,值设为你的查询结果转为字符串查询时先从redis取,没有再查数据库,并且设置redis的过期时间,这种方式需要项目对实时性要求不高,这样你才能用缓存,而且如果你的项目没有明显的热点,即没有某些内容确定会多次被查到,那你缓存就不会命中,添加缓存反而影响你得速度redis是一种nosql的内存数据库,感兴趣你可以了解一下,优点就是性能强劲数据查询请求多就把结果缓存下来,你查数据库再快也没有直接把结果从内存读出来快同样的sql请求只有第一次查数据库,之后通通读内存或者你干脆借助这种思想,创建一个全局的map对象,然后查询条件作key,结果作value,就省去了了解redis的过程,把整个数据库装内存不太科学,你有多少条数据啊

白衣染霜花

在applicationContext.xml里设置数据源<!-- 数据源定义,使用Apache&nbsp;DBCP&nbsp;连接池 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean>写入具体值就可以了applicationContext.xml中还有一段相关的:<!-- 初始化ibatis配置信息sqlMapClient --><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation" value="classpath:cn/com/pp/db/SqlMapConfig.xml" /><property name="dataSource" ref="dataSource" /></bean>

慕盖茨4494581

map由key value键值对组成,具体放多少数据和你的服务器运行时的内存有关系,同时也和你代码中及时清理无效缓存有关系。一般编写代码中不会去考虑放多少数据问题,除非你数据量超级大对内存要求比较高。这个时候需要对代码和服务器进行优化
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java