- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是第一次实现 JCS。
我的要求:我有一个带有 main 方法的 java 类,在该方法中我在缓存中存储一些数据。
我有第二个java类,它有一个主要方法,我从磁盘缓存中检索我使用第一个java类存储的内容。
请注意:1.我想使用磁盘缓存(JCS的)。2. 我想从不同的JVM 检索数据。3.当我运行第一个Java类main方法时,我应该将数据存储在磁盘缓存中,当我运行第二个java类main方法时,我想使用第一个java类main方法从存储在磁盘中的缓存中检索数据。
类 1:主方法..
public static void main(String[] args) {
// Initialize the JCS object and get an instance of the default cache region
try {
JCS cache = JCS.getInstance("default");
String key = "key0";
String value = "value0";
cache.put(key, value);
cache.put("vasu","dev");
} catch (CacheException e) {
e.printStackTrace();
}
}
类2:主方法
public static void main (String asd[]){
try {
JCS cache = JCS.getInstance("default");
String cachedData = (String)cache.get("vasu");
// Check if the retrieval worked
if (cachedData != null) {
// The cachedData is valid and can be used
System.out.println("Valid cached Data: " + cachedData);
}
else
System.out.println("Invalid cached Data: ");
} catch (CacheException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
缓存.ccf:
jcs.default=DISK_REGION
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.elementattributes.IsEternal=false
jcs.default.elementattributes.MaxLifeSeconds=3600
jcs.default.elementattributes.IdleTime=1800
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true
jcs.region.OUR_REGION=DISK_REGION
jcs.region.OUR_REGION.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.OUR_REGION.cacheattributes.MaxObjects=1000
jcs.region.OUR_REGION.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.OUR_REGION.cacheattributes.UseMemoryShrinker=true
jcs.region.OUR_REGION.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.region.OUR_REGION.cacheattributes.ShrinkerIntervalSeconds=60
jcs.region.OUR_REGION.cacheattributes.MaxSpoolPerRun=500
jcs.region.OUR_REGION.elementattributes=org.apache.jcs.engine.ElementAttributes
jcs.region.OUR_REGION.elementattributes.IsEternal=false
jcs.auxiliary.DISK_REGION=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DISK_REGION.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DISK_REGION.attributes.DiskPath=c:/jcs/disk_region
jcs.auxiliary.DISK_REGION.attributes.MaxPurgatorySize=10000
jcs.auxiliary.DISK_REGION.attributes.MaxKeySize=10000
jcs.auxiliary.DISK_REGION.attributes.OptimizeAtRemoveCount=300000
jcs.auxiliary.DISK_REGION.attributes.MaxRecycleBinSize=7500
最佳答案
我做了两处更改,达到了上述示例代码的预期结果。
控制台 ->“有效的缓存数据:dev”
我做了什么
在默认缓存区域下的 cache.ccf 中添加一行 -
jcs.default.cacheattributes.DiskUsagePatternName=UPDATE
在类 1 的末尾添加 sleep :main 方法
说明
DiskUsagePattern
默认为 SWAP,这意味着当元素达到 MaxMemoryIdleTimeSeconds
时将缓存元素写入磁盘,默认值似乎是 60 * 120 秒。当 DiskUsagePattern
为 UPDATE
时,元素在添加到缓存时会写入磁盘。好吧,元素不会同步写入缓存,而是添加到队列中立即写入并返回。因此,如果有人正在寻找磁盘上的即时且可靠的更新,那么 DiskUsagePattern
应该是 UPDATE
而不是 SWAP
(默认)。关于java - JCS 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591245/
我是第一次实现磁盘缓存 (jcs)。我想配置 cache.ccf 文件以允许磁盘缓存。我的 cache.ccf 文件有这样的配置: jcs.region.lesson=blockDiskCache j
我在我的应用程序中使用 JCS 进行缓存。最近发生了一些错误,其中并发访问缓存中的数据导致空值,即一个线程写入缓存,一个线程读取缓存缓存。我想知道 JCS 在写入和读取缓存时是否天生支持线程安全实现。
我是第一次实现 JCS。 我的要求:我有一个带有 main 方法的 java 类,在该方法中我在缓存中存储一些数据。 我有第二个java类,它有一个主要方法,我从磁盘缓存中检索我使用第一个java
我正在使用 JCS 进行缓存,我遇到了数据未写入磁盘的问题,即没有出现错误,但是当我查看数据文件时,它们的大小都是 0k。有人知道吗是什么导致了这个错误,我正在使用 JCS 网站中提供的属性文件。 最
我在应用程序中使用 Apache JCS 在应用程序启动时缓存常用数据。但是,如果缓存中的某些数据直到空闲时间才使用,我想从数据库手动重新加载该值。 所以,基本上我想重写 JCS 事件,以便我的 ja
我们使用 JCS 非常简单。没有分发或任何东西,简单地说: JCS jcs = JCS.getInstance("region-name"); 我正在尝试注册某种监听器,该监听器可用于在元素从缓存中删
我们将身份验证 token 存储在 JCS 中,重新启动服务器时,缓存上下文丢失。为了克服这个问题,当停止服务器时,决定将 JCS 值列表存储到一个文件中,并在重新启动时读取该文件并将其存储回 JCS
这与我之前的问题https://stackoverflow.com/questions/8428911/jcs-disk-cache-data-retrieval有关 即使在应用程序关闭后,JCS 也
JCS 缓存 - 删除功能而不删除特定元素 我们应用程序的 jcs 缓存配置如下,我看到当我们使用 fulshAll() 方法时它会删除整个缓存但是当我们使用 remove(key) 时它不会删除该对
我正在使用 JCS 进行缓存。现在我正在使用磁盘缓存来临时存储所有数据。问题是当我使用 JCS 时,只有当缓存正确关闭时, key 才会写入磁盘。 我使用磁盘使用模式作为更新,它告诉 JCS 立即将数
我们有作业在 JCS 中运行,由于不再支持 JCS,我们正在将 JCS 中的作业迁移到 Autosys 。我们团队中没有人知道如何将 JCS 中的 JOB 迁移到 Autosys。即使我在谷歌上搜索了
我们计划在我们的应用程序中使用一些缓存机制,并在与许多其他缓存解决方案进行比较研究后选择了Java缓存系统(JCS)。当我使用外部配置(cache.ccf)来定义缓存区域及其属性(如 maxlife、
我正在尝试使用 JCS 1.3 创建永久磁盘缓存。我希望缓存能够关闭,然后在下次使用时从磁盘重新加载。我有很多数据要从需要很长时间才能运行的数据库中填充,如果缓存只是从磁盘重新加载,速度会快得多。我尝
大多数缓存服务都支持将任何对象缓存为键值对。但我正在寻找一种可以将对象缓存为区域或组的方法。这意味着,缓存对象应该能够分组。一个或多个对象被缓存到一个组中。无论我们对组做什么(删除、更新),都应该影响
我正在使用 JCS 缓存。我想检索特定区域的所有键和值。 JCS jcsInstance=JCS.getInstance("regionName"); 我怎样才能实现它? 最佳答案 在组缓存访问类中,
背景: 我们有 4 台物理服务器 (4 IPS),每台都在端口 80 上运行的 JBOSS 6 EAP 中运行。所有请求都通过负载均衡器重定向到其中任何一台服务器。现在我尝试为这种分布式环境实现 Ja
我正在使用 JCS 缓存来增强性能。当我需要维护一组 key 时会出现问题,因为我使用的存储类型通常是离线存储到磁盘。有没有一种方法可以像使用 HashMap 一样从缓存中单独获取键集,以便我可以自动
我在我的应用程序中使用 JCS 缓存。我正在从 Java 应用程序(主要方法)更新 jcs 缓存数据。并使用另一个 tomcat 应用程序( war )访问它。我的问题是我没有为 tomcat 应用程
我在我的 J2ee 应用程序中实现了 JCS,它使用 log4j 进行日志记录。 我的需求 将应用程序 rootLogger 设置为 DEBUG 级别,并将 jcs 日志设置为 ERROR 模式。 尝
本文整理了Java中org.apache.commons.jcs.engine.ZombieCacheServiceNonLocal类的一些代码示例,展示了ZombieCacheServiceNonL
我是一名优秀的程序员,十分优秀!