分布式:MemcaChed不完全。集群默认不实现,Ehcache支持。
集群:MemcaChed可通过客户端实现。Ehcache支持(默认是异步同步)。
持久化:MemcaChed可通过第三方应用实现,如sina研发的memcachedb,将cache的数据保存到[url=]Berkerly DB[/url]。Ehcache支持。持久化到本地硬盘,生成一个.data和.index文件。cache初始化时会自动查找这两个文件,将数据放入cache。
效率:MemcaChed高。Ehcache高于Memcache。
容灾:MemcaChed可通过客户端实现。Ehcache支持。
缓存数据方式:MemcaChed缓存在MemCached server向系统申请的内存中。Ehcache可以缓存在内存(JVM中),也可以缓存在硬盘。通过CacheManager管理cache。多个CacheManager可配置在一个JVM内,CacheManager可管理多个cache。
缓存过期移除策略:MemcaChed是LRU。Ehcache是LRU(默认),FIFO,LFU。
缺点:MemcaChed功能不完善,相对于Ehcache效率低。Ehcache只适用于java体系,只能用java编写客户端。
优点:MemcaChed简洁,灵活,所有支持socket的语言都能编写其客户端。Ehcache效率高。功能强大。
在系统根目录有个 .FineReport110 文件夹,这个目录下的所有文件都是服务器生成的。其中有个 ./ehcache_disk_store 文件,经常占用非常大的空间,导致根目录很容易就满了,那么怎么修改 ./ehcache_disk_store 存放路径呢?
1.2 实现思路
./ehcache_disk_store 里放的是两种类型的缓存文件,分别是:数据库二级缓存、文件服务器的缓存
操作时并不是直接修改 ./ehcache_disk_store 的路径,而是分别修改这两种缓存文件的路径。
2. 操作方法
2.1 修改数据库二级缓存路径
在工程目录 WEB-INF/config 文件夹下创建一个名为 ehcache.db.properties 的文件。
其中跟数据库二级缓存路径相关的配置见下图框出来的部分,可根据场景实际进行修改。
文件配置项如下:
# 数据库ehcache配置
# 是否禁用二级缓存,默认不禁用false
disableCache=false
# 堆中最大缓存空间,默认256M
maxBytesLocalHeap=1G
# 缓存是否常驻,true时timeToIdleSecond和timeToLiveSecond无效,默认false
eternal=false
# 使用后的空闲时间,默认120
timeToIdleSecond=120
# 创建后的存活时间,默认120
timeToLiveSecond=120
# 缓存过期策略,取值LRU,LFU,FIFO,CLOCK,默认LRU
memoryStoreEvictionPolicy=LRU
# 线程检查缓存超时的间隔时间,默认120
diskExpiryThreadIntervalSeconds=120
# 持久化类型,取值LOCALTEMPSWAP,DISTRIBUTED,LOCALRESTARTABLE,NONE,默认NONE
persistenceType=LOCALTEMPSWAP
# 指定数据库二级缓存路径
diskStore=C:\\Users\\root\\Desktop\\tmp\\db_cache
# 持久化同步写入,默认false
persistenceSynchronousWrites=false
# 每隔一段时间清理过期缓存,单位秒,默认60
recycleCacheMemoryInterval=60
# 每隔一段时间debug输出缓存使用情况(仅在调试时使用,同时日志级别需要调至DEBUG),单位秒,为0时不开启,默认0
reportCacheStatusInterval=0
2.2 修改文件服务器缓存路径
在 FineDB 的 fine_conf_entity 表中新增以下两个字段。新增字段时请直接连接到 FineDB 在表里手动修改,不支持使用 FINE_CONF_ENTITY可视化配置插件 配置。
FineDB 数据库类型和连接方法参见文档:FineDB数据库简介
字段 值
ResourceCacheConfig.persistenceStrategy LOCALTEMPSWAP
ResourceCacheManagerConfig.diskStorePath diskStore=C:\\Users\\root\\Desktop\\tmp\\resource_cache
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)