问题标签 [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.

0 投票
1 回答
102 浏览

caching - Ehcache 和 CacheWriter (write-behind) 关系

假设我们有一个配置了后写 CacheWriter 的 Cache。假设我们将一些对象放入缓存中,然后由于驱逐策略而删除了该对象。

关于写作有什么保证?更准确地说,即使它在“有机会”被写入之前被删除,是否write()保证该对象发生事件?

谢谢!

0 投票
1 回答
92 浏览

hazelcast - 嵌入式 Hazelcast 与 ehCache 3 内存不足

我试图将一些对象放入缓存中。

使用 Hazelcast,当我放置大约 30 个对象时,我的内存不足。

但是,使用 ehCache 3,我可以毫无问题地放置 1000 个。

我是否正确使用 Hazelcast?

雾霾天气:

EHCACHE 3:

0 投票
3 回答
130 浏览

java - 是否可以手动缓存整个网页?

我需要缓存一个网页,然后对于未来的请求,检查缓存(使用 url 作为键),如果找到,从缓存中返回网页而不是发出请求。

我正在使用 Smiley 的 ProxyServlet,servlet 写入 OutputStream 的方法似乎非常适合缓存。我只添加了两行代码:

它有点工作,它确实将 HttpEntity 存储在缓存中。但是当我返回浏览器并再次请求相同的 url 时,当代码返回到我的过滤器中时,我使用 url 作为键获取 HttpEntity,并将其写入响应,但我得到一个“流已关闭“ 错误:

这是过滤器:

哦,还有 BasicCache 类以防万一:

我坚持使用这种非常本地化/手动/任何你想称之为缓存的方式——我不能使用明显的“只需连接 ehcache / redis / 任何东西,让它做它的事情”。因此,虽然我知道那些精细的缓存可以缓存整个网页,但我不知道它们是否允许我以这种公认的不同寻常的方式工作。

所以我希望 SO 可以告诉我如何完成这项工作。我首先尝试为我的基本缓存连接一个 ConcurrentHashMap ,但这也不起作用,所以我想看看我是否可以利用大型缓存枪所拥有的任何魔力,但到目前为止我还不能。

谢谢你的帮助!

0 投票
1 回答
594 浏览

java - EhCache 3:如何解开统计 bean?

我想通过提取 MBean 来显示统计信息,但是我不知道如何,因为在网上我只能看到以编程方式注入的 bean(另请参见这个SO question)。

有什么建议吗?

0 投票
1 回答
3193 浏览

java - 如何为ehcache初始化对象列表<>?

我需要初始化需要包含的缓存

所以我有 CacheHelper 类

但是在这行代码中,我无法将对象转换为列表 String.class,Person.class,它需要是 String.class,List:

但我收到错误:

我需要将 List 存储在一个键中。如何初始化它?

0 投票
1 回答
274 浏览

java - Ehcache 无法使用 java 中的 Generic 类进行初始化

我使用 Ehcache 3 和 Declared Cache 作为:

例如:我有许多来自数据库的要放入缓存的对象列表:

所以,我需要将这些不同类型的列表放在我的缓存中。所以,我尝试制作通用类来将这些列表初始化为:

我从这里访问这个通用类:

但是,在GenericClassForList<Person>.class如下所示的这行代码中,它向我显示了红色标记(错误):

我无法初始化缓存,因为它向我显示:

无法从参数化类型中选择

我的泛型类有什么问题,或者我怎样才能让我的缓存能够识别这个泛型类?我的缓存没有让我初始化这个泛型类。

0 投票
1 回答
547 浏览

java - 尝试删除所有缓存时出现 Ehcache 异常

我已经搜索了解决方案,因为其他问题也已发布java.lang.NullPointerExcpetion。但我无法找到我的问题。我正在使用 Ehcache 3,并且我已经实例化了一个缓存,它将数据放入缓存中。

作为缓存工作的类是:

当我运行程序时,数据被插入缓存并打印为:

我正在为缓存设置计时器,并且需要在 15 秒内刷新缓存。所以,我尝试使用 Helper.java 类作为,

我在以下位置收到空指针异常:

我试图调试程序,我看到空指针异常来自:

我的缓存管理器为空。但是当我尝试从 API 请求中清除缓存时,它能够清除缓存。我没有使用 spring 框架。为什么我cacheManager是空的,但通过 API 调用时很容易将其删除,例如:

http://localhost:8080/myresource/clearCache,我的缓存很容易被清除。

0 投票
2 回答
7520 浏览

java - 如何在没有 xml 的情况下使用 spring boot 2 和 ehcache 3?

现在我有以下配置:

它引用以下 XML:

服务看起来像这样:

它工作正常,但我想摆脱 xml 配置。

我已阅读并尝试应用以下答案(最后一段代码)但它仅适用于 Ehcache 2 但我将使用 Eehcache 3

我怎样才能实现它?

0 投票
0 回答
192 浏览

java - 在 Ehcache 3.x 中获取缓存条目的年龄

我在 Spring 5.x 应用程序中使用 Ehcache 3.8.0 来缓存长时间运行的数据聚合。聚合数据显示在 Web 前端。

我现在正在寻找一种方法来获取缓存元素的年龄以将其与数据一起显示。

Ehcache 2.x 将缓存条目存储为Element参见 javadoc),它具有公共方法getLatestOfCreationAndUpdateTime()来检索创建或上次更新缓存条目的时间戳(= 缓存数据的年龄/新鲜度)。

但是在 Ehcache 3.x 中,缓存条目被存储为Cache.Entry<V,K>参见 javadoc),它只不过是一个键/值元组,它不提供类似getLatestOfCreationAndUpdateTime()方法的东西。

我知道每当创建或更新缓存条目时,我都可以使用诸如缓存事件侦听器之类的东西来单独存储时间戳,但我想知道是否有更直接的方法来获取以前随getLatestOfCreationAndUpdateTime().

0 投票
1 回答
420 浏览

java - 创建缓存时如何将所有缓存名称及其数据放入 List<> 中?

我使用过 Ehcache 3,而且我是 Ehcache 3 的新手,我有一个缓存管理器,如下所示:

现在当对象被创建时 cacheManager 被初始化:

初始化缓存管理器后,这是我的主类,所有获取和放入缓存的操作都在其中发生。我已将多个数据插入不同的缓存,例如:

我想要一个单独的函数,它将返回所有缓存名称和缓存中数据总数的计数,以便我可以在 UI 中显示包含数据的缓存。我搜索了问题,但没有找到解决方案。