JCS的学习与应用四:索引式硬盘缓冲
来源:互联网 发布:mac清楚最近使用记录 编辑:程序博客网 时间:2024/05/19 04:56
非常感谢 http://blog.csdn.net/lfsfxy9/article/details/22696459
索引式硬盘缓冲,作为内存缓存的一个辅助,它主要的目的提供一个二级缓存,从而降低缓存对内存的压力。当内存缓存超出了最大值时,缓存处理会检查看是否为存储区配置了”disk”类型的备用缓存,如果使用了被索引的磁盘备用缓存,缓存中心会把从内存中删除的缓存项目保存到磁盘。
这个就是我们经常要用到的,为了避免服务器的内存溢出,同时保证但内存缓存区超过限制时,缓存的内容不丢弃。只需要指定缓冲临时文件的存放目录位置。硬盘缓冲将缓冲对象的内容写到文件上,但是将访问索引保存在内存中,因此也能够达到尽可能高的访问效率。
这种硬盘缓存又分为两种。 一是并行式的分布缓冲(Lateral), 通常,将对象缓冲在内存中,一方面提高了应用的性能,而另一方面却使得应用不可以分布式发布。场景假设:一个应用配置在两台服务器上并行运行,而两台服务器单独缓冲,则很容易导致两个缓冲区内容出现版本上的不一致而出错。一个机器上修改了数据,这个动作会影响到本地内存缓冲区和数据库服务器,但是却不会通知到另一台服务器,导致另一台上缓冲的数据实际上已经无效了。
并行式的分布缓冲可以解决分布式缓存不同步更新的问题,今天只介绍一下单机硬盘缓存示例:
配置文件:
# CACHE REGIONS ,这里需要把硬盘缓存DC配置到此
jcs.region.testCache1=DC
jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.testCache1.cacheattributes.MaxObjects=10
jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache
# AUXILIARY CACHES
# Indexed Disk Cache
jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath=d:/dev/jcs/raf
# 在内存中与磁盘缓存对象所对应的个数
jcs.auxiliary.DC.attributes.MaxPurgatorySize=10000
# 设置key文件中缓冲对象个数
jcs.auxiliary.DC.attributes.MaxKeySize=10000
# 删除处理的次数超过300000后对数据文件进行整理
jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300000
jcs.auxiliary.DC.attributes.OptimizeOnShutdown=true
# 保留key文件中已在data文件被删除对象的个数,需要符合内存算法
jcs.auxiliary.DC.attributes.MaxRecycleBinSize=7500
硬盘缓存文件:
运行测试代码,如果对testCache1区域缓存1000个数据对象,超过缓存配置(MaxObjects=10)的对象即缓存到硬盘缓冲文件中,对缓存对象进行删除等操作,还可以通过配置来自动整合数据文件等等。
参考:
- 《Java缓存技术介绍(JCS开源项目)-----索引磁盘备用缓存》
- 《JCS配置》
0 0
- JCS的学习与应用四:索引式硬盘缓冲
- JCS的学习与应用一:JCS谓何?
- JCS的学习与应用一:JCS谓何?
- JCS的学习与应用三:内存缓存应用
- JCS的学习与应用二:cache.ccf配置说明
- JCS的学习与应用二:cache.ccf配置说明
- JCS学习
- 缓存与缓冲的区别与应用
- Direct9学习之--------------------------模板缓冲的应用
- GDI+学习笔记(四)Bitmap与双缓冲
- 用Jcs缓存机制创建更快的Web应用
- JCS学习(1)
- Tensorflow学习与应用四
- java nio 新的四种文件传输 直接缓冲与非直接缓冲 速度对比
- JCS的初步探究
- Django学习笔记(四)--admin的配置与应用
- Gdi+与双缓冲的图片显示(应用篇)
- Gdi+与双缓冲的图片显示(应用篇)
- Redis千万级的数据量的性能测试
- RH9.0如何从窗口界面进入命令行界面
- FastDFS是一个开源的轻量级分布式文件系统
- js 计算剩余 天、时、分、秒
- 27个提升效率的iOS开源库推荐
- JCS的学习与应用四:索引式硬盘缓冲
- setOnPageChangeListener 过时了怎么办?
- NSError && NSException
- TOMCAT 下部署 PHP
- CentOS下安装hadoop
- 设计模式之闲话一两句
- HDU 1234 开门人与关门人
- 笔试题2:面向对象的基本特征
- C++继承的访问规则