问题标签 [jcache]

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 投票
2 回答
1731 浏览

java - 如何在 Apache Ignite 中获取给定缓存的配置?

例如,我通过以下方式配置缓存:

现在,如果稍后我想从返回的 igniteCache 中找出过期策略的持续时间怎么办。我可以通过以下 hacky 方式做到这一点,但它很丑陋,而且不可能是正确的方式:

我正在使用的 Apache Ignite 版本是 1.5.0.final

顺便说一句,在 Ehcache 中,我可以通过以下方式简单地获取配置:

0 投票
1 回答
1195 浏览

java - JCache (JSR107) 是否允许不同条目的不同有效期?

假设我想缓存昂贵的方法调用的结果。这些缓存条目应该有不同的过期时间(又名 TTL)。如果将条目放入同一个 Cache 实例中,JCache 是否有可能?

我知道我可以为每个缓存分配不同的 ExpiryPolicy。但是我想知道是否可以将到期持续时间单独分配给 CacheEntry。

JCache 支持这个吗?如果是这样,我将不胜感激此代码示例的链接。这个问题的范围纯粹是 JCache,没有任何实现特定的功能。

0 投票
3 回答
7005 浏览

java - 何时使用 Java Cache,它与 HashMap 有何不同?

我已经javax.cache.Cache了解了它的用法和行为。据称,

JCache 是一种类似 Map 的数据结构,提供应用程序数据的临时存储。

JCache 和 HashMap 将元素存储在本地 Heap 内存中,默认情况下没有持久化行为。通过实现自定义CacheLoaderCacheWriter我们可以实现持久化。除此之外,什么时候使用它?

0 投票
1 回答
940 浏览

java - 如何缓存同一类的其他方法?

我正在使用 JCache 的 Ehcache 实现。

可以说,我上课了Test。在这个类中,我有两种方法:methodAmethodB. methodB有注释@CacheResult(cacheName = "methodB")

从这些信息中你会猜到我想要缓存方法methodB并且methodA应该使用这个缓存。

但是......它不起作用。当我使用同一个类的方法时,这个注释似乎没有触发它的拦截器。但是,如果我创建类Test2并将方法移动methodB到此类,它仍然有效 - 然后,正如预期的那样,此方法的结果被缓存。

如何启用同一类的缓存方法?

0 投票
0 回答
630 浏览

java - 带有 Hazelcast 数据驱逐的 Spring JCache

我对 Spring Boot 应用程序中的缓存有疑问。我有一个简单的 Web 应用程序,我在其中管理一个实体,使用 Spring Data JPA、JCache 和 Hazelcast 实现。我创建了两个缓存:

  • 一个通过 id 缓存实体
  • 另一种是实体字段值和实体列表作为缓存值

当我从系统中删除单个值时,我只是从第一个缓存中逐出该值,如果存在具有相应键(字段值)的记录,则从第二个缓存中逐出整个实体列表。我的问题:是否有任何解决方案不从第二个缓存中删除整个记录而是更新它,只需从缓存值列表中删除一个实体?

例子:

0 投票
1 回答
719 浏览

caching - WildFly 10,JCache - 方法缓存

我有使用 Spring Boot 的简单应用程序。我想允许使用 JSR107 - JCache 进行方法缓存。所以在教程的帮助下,我把这段代码放在一起:

使用这个 POM 文件

(依赖 'spring-boot-starter-web' 用于调用getCountry方法的简单 REST 服务)

一切都像文档所说的那样工作 - 方法只被调用一次。

现在我想在 WildFly 10 应用服务器上试用它

我修改了 pom 文件:

  • 排除tomcat
  • 排除的 spring-boot-starter-cache
  • 添加了infinispan-jcache(因为我想在standalone/domain.xml中使用wildfly配置/管理的缓存)

在 pastebin 上检查 pom 文件。

问题是,我收到以下错误: 找不到名为“java:jboss/infinispan/app-cache”的缓存

(我尝试使用分配的 JNDI 和名称来配置在 wildfly 中的 infinispan 缓存)。

以下代码创建了 Cache 对象(所以我可以使用它):

问题

  • 是否可以使用 WildFly 管理的 Infinispan 在 WildFly 10 上使用 JCache 方法缓存?
  • 或者 Infinispan 应该用于像 JCache 这样的方法缓存,因此 JCache 比 Infinispan 具有“更多功能”。

非常感谢

PS:将整个代码放在github上并发布链接对我来说不是问题-它是几行代码......

0 投票
2 回答
2805 浏览

hibernate - Jcache 和 Hibernate L2 一起使用

我检查了 Jcache 规范,我的理解是它在从缓存中加载和删除对象方面为您提供了更大的灵活性,但您必须编写自己的数据访问。

Hibernate L2 缓存非常适合缓存来自 RDBMS 的数据,但在填充和驱逐方面提供的灵活性有限。

可以同时使用这两个功能中最好的一个来避免 Jcache 实现中的数据访问,例如可以满足两种规范的 Ignite。

更准确地说,Ignite 创建的单个缓存对象可以同时被视为 Hibernate L2 缓存和 Jcache。

如果需要,我想使用 Jcache 注释并使用休眠进行数据库操作

0 投票
1 回答
4486 浏览

java - 如何告诉 Spring Cache 缓存 @Cacheable 注解中的异常?

我需要 3 个单独的缓存:

  • 回应一些数据
  • 空值
  • 例外

我已经定义了两个缓存

所以,我必须实现最后一个案例。

JSR-107 提供了带有exceptionCacheName属性的 @CacheResult 注释,但是如何使用 Spring Cache 做到这一点?我不想结合 JSR-107 和 Spring Cache。

0 投票
1 回答
547 浏览

multithreading - 如何忽略最大空闲秒数但将 ttl 保留在 Hazelcast JCache 中?

我正在尝试使用 Hazelcast 3.7.x(撰写本文时的最新版本)JCache 提供程序和声明式配置(以获得线程等的好处)。我只需要为我的用例设置 time-to-live-seconds 而不是 max-idle-seconds。仅当没有完成更新(在缓存中的条目生命周期内发生读取)时,我才需要将项目保留在缓存中。如果我不设置 max-idle-seconds 它默认为 0 并且将条目永久保存在缓存中。如果我将它设置为小于 TTL 的值,它可能会超过预期的时间,因为可能会发生读取。我在 hazelcast.xml 文档中看不到如何做到这一点。我可以使用具有不同到期策略的编程接口,但是会出现 Hazelcast 文档中记录的初始化问题。此外,如果他们能为 JCache 提供者做到这一点,我'

如果这是不可能的,并且您有一个 JCache 代码可以与编程配置一起使用,并注意线程问题,请发布。如果只是单线程创建调用的问题,我可以自己做。

谢谢小号

0 投票
2 回答
1451 浏览

hazelcast - 找不到名为“hz:impl:cacheService”的服务

我正在编写我的 hazelcast 原型代码。运行阅读器时遇到以下错误。不知道我错过了什么。

这是我的代码