JCS的学习与应用四:索引式硬盘缓冲

非常感谢 http://blog.csdn.net/lfsfxy9/article/details/22696459

缓存技术学习 https://www.itkc8.com

 索引式硬盘缓冲,作为内存缓存的一个辅助,它主要的目的提供一个二级缓存,从而降低缓存对内存的压力。当内存缓存超出了最大值时,缓存处理会检查看是否为存储区配置了”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)的对象即缓存到硬盘缓冲文件中,对缓存对象进行删除等操作,还可以通过配置来自动整合数据文件等等。

 

缓存技术学习 https://www.itkc8.com

参考:

  1. 《Java缓存技术介绍(JCS开源项目)-----索引磁盘备用缓存》
  2. 《JCS配置》
  3.  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值