锁定老帖子 主题:分页查询总行数缓存策略
精华帖 (0) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-04
prowl 写道 1,楼主提到了高并发,应该看下com.java.util.concurrent包下的ConcurrentHashMap
ConcurrentHashMap并没有所谓非常高的性能,如果想看,建议看oscache吧。顺便提一下,包名多了个com prowl 写道 2,单纯靠判断时间来对缓存进行删除操作我觉得不太科学,是否可以加一个计数器?在使用频率最少和时间之间做判决。 prowl 写道 3,是否可以扩展一下让这个缓存应用到不同的场景,比如存取可能是一些实际的对象,或者删除之后是否可简单持久化到文件,下次读取文件的一些关键信息。(有一些操作很占内存不一定是DAO,比如一些文件的解析) prowl 写道 4,维护多个有关联的Map的时候是否需要加入事务处理。 |
|
返回顶楼 | |
发表时间:2009-11-04
yirentianran 写道 既然是高并发,那是否应该考虑同步机制?
有效和高效的同步控制,是cache性能优劣的一个重要评判标准的。 |
|
返回顶楼 | |
发表时间:2009-11-05
凤舞凰扬 写道 prowl 写道 1,楼主提到了高并发,应该看下com.java.util.concurrent包下的ConcurrentHashMap
ConcurrentHashMap并没有所谓非常高的性能,如果想看,建议看oscache吧。顺便提一下,包名多了个com prowl 写道 2,单纯靠判断时间来对缓存进行删除操作我觉得不太科学,是否可以加一个计数器?在使用频率最少和时间之间做判决。 prowl 写道 3,是否可以扩展一下让这个缓存应用到不同的场景,比如存取可能是一些实际的对象,或者删除之后是否可简单持久化到文件,下次读取文件的一些关键信息。(有一些操作很占内存不一定是DAO,比如一些文件的解析) prowl 写道 4,维护多个有关联的Map的时候是否需要加入事务处理。 有关第三点,对于频繁耗时的数据库操作,或者一些文件的解析,往往得到一些有用的信息要用上更长的时间,在源更新不频繁的情况下,有效对已经提取的有用信息进行持久化,再次访问直接读取信息文件,能显著的提高效率。这只是一个扩展,也不太同于池的概念。 第四,有时会遇到一些缓存之间是相互关联的,比如同时保存了2个Map,其中一个Map里的数据在更新或者获取的时候出现了异常,那这条有关联的数据其实是无效的。可以加一些简单的事务控制。 其实这只是我在项目中遇到的问题,及我的解决办法,有时间一定看以下oscache,多谢推荐。 |
|
返回顶楼 | |