问题标签 [ehcache-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Ehcache 中存储嵌套的 Map 结构?
我想将 Map < Integer, Map < String, Map < String, Integer >>> 类型的变量存储到 Ehcache 中。如何将这个嵌套的 Map 结构作为值存储在 Ehcache 中?
caching - 如何确保在将数据写入缓存时没有人从 Ehcache 对象中读取?
我想使用EhCache将数据存储到缓存中,但是如果我尝试在数据被填充到缓存之前访问数据,我会得到NULL POINTER exception。我如何确保数据不会从缓存中读取,除非数据已存储到缓存中?
ehcache - 如何将环境配置文件与 ehcache 一起用于 mybatis?
我们可以在 classpath:ehcache.xml 中配置 ehcache
但我有不同的环境配置文件,例如“test”、“prod”
如何使用profile为mybatis配置不同环境的ehcache?
java - EhCache 磁盘持久化 - 持久化任意对象
我想使用 EhCache 将对象持久保存在磁盘上,因此下次我将运行我的应用程序时,它将从中加载。在他们的文档中,有以下示例使用 PersistentCacheManager 类来执行此操作:
该示例工作正常,但如果 CacheConfigurationBuilder 对象定义硬编码为 Long 和 String 的键和值的类,对我来说是个问题。我想保留仲裁类的实例,而不是预定义哪些实例。此外,例如,CacheConfigurationBuilder 不会采用 Object.class 或 HashMap.class。
如何使用 EhCache 将任意实例类持久保存在磁盘上?
java - 如何在 EhCache 中同步多个线程的动作?
如何同步多个线程的动作并确保在给定时间点只有一个线程可以访问资源EhCache
。
ehcache - Ehcache 3.x 配置键/值类型错误
我将 SpringFramwork 与 Ehcache 3.x 集成,并在ehcache.xml中指定键/值类型时出现异常。这是我的配置:
我得到异常:缓存 [XXX] 指定键/值类型。使用 getCache(String, Class, Class)。这是堆栈跟踪:
我的配置有问题吗?
caching - Ehcache 3 简单网页缓存的过滤器在哪里调用缓存?
我正在尝试在 Ehcache 中缓存一个简单的网页。感谢另一篇 SO 帖子的帮助,我发现我需要基于 Ehcache 2 代码实现自己的过滤器。当我看过滤器时,我不明白。它在哪里调用缓存来返回值?这是我的实现(很可能是错误的):
grails - ehcache 留下数百个“打开文件”崩溃 tomcat
首先,如果我在这里使用了错误的术语,我深表歉意,我不是特别熟悉缓存或 Linux 文件系统的内部工作原理。就此而言,我可能误解了这个问题并找错了树。
目前正在运行 grails 3.2.10
这似乎在幕后使用了 ehcache 3.1.4。我们遇到了一个问题,即我们的基于磁盘的缓存在启动时被加载,留下太多“打开的文件”。由于我们的应用程序为 .jars 保留了 4000 多个打开文件,用于读取缓存的 900 多个打开文件导致我们的服务器报告“打开的文件过多”并且服务器变得不可用。我们增加了可用的打开文件,但看起来我们不应该为缓存打开这么多文件。
示例缓存配置:
运行我的应用程序时,如果我使用 来检查打开的文件lsof -p <pid>
,我会看到以下文件分别打开了 34 次,并且在应用程序加载后保持打开状态:
这种模式对每个基于磁盘的缓存重复。这在本地运行和将 .wars 部署到 Tomcat 服务器时是相同的。我已经尝试跟踪 ehcache 代码以找到打开这些代码的位置,但到目前为止没有成功,ehcache 非常狡猾。
有谁知道为什么这些基于磁盘的缓存被打开这么多次(而不是关闭)?有没有办法配置它,以便缓存以不同的方式“加热”?
编辑,更多信息:
所以我终于弄清楚发生了什么,虽然还没有解决它。ehcache 正在为磁盘缓存使用 terracotta 实现(我不确定这是默认实现,还是唯一包含的实现),它专注于性能。对于基于磁盘的缓存,默认并发被硬编码为16
,这意味着它对每个磁盘缓存打开 16 个读取和 16 个写入FileChannel
(然后由于某种原因还有另外两个打开的文件句柄,但此时并不那么重要)。无论是梳理代码还是从文档中,我都没有找到配置它的方法。
ehcache - 在 Ehcache 3 的导入中找不到 ListenerObject?
我正在尝试使用下面的代码为 Ehcache 3.3.1 项目实现监听器。任何人都可以为 ListenerObject 提出解决方案吗?我似乎在任何地方都找不到它,除了在文档页面上我得到了代码