问题标签 [spring-cache]
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.
spring - 如何更新/删除已缓存在项目集合中的项目
我正在使用 Spring 和 EhCache
我有以下方法
我还有其他使用@Cacheable、@CachePut 和@CacheEvict 的方法。
现在,假设数据库返回 100 个产品并通过 缓存它们key="#root.target.PRODUCTS"
,然后其他方法将插入 - 更新 - 删除一个项目到数据库中。因此,通过 缓存的产品key="#root.target.PRODUCTS"
不再相同,例如数据库。
我的意思是,检查以下两种方法,它们能够更新/删除一个项目,并且同一个项目缓存在另一个中key="#root.target.PRODUCTS"
我想知道是否可以通过 更新/删除位于缓存中的项目key="#root.target.PRODUCTS"
,如果产品被删除,它将是 100 更新产品或 499。
我的观点是,我想避免以下情况:
我不想再次调用 500 或 499 产品缓存到key="#root.target.PRODUCTS"
有可能这样做吗?如何?
提前致谢。
spring - 将两个缓存逐出放在同一方法上
我在两种方法上有两个缓存。brand
和brands
现在我想从被调用brands
时驱逐一切。createOrUpdateBrand
我可以做类似以下的事情吗???
或者
java - Spring Cache:驱逐多个缓存
我正在使用 Spring Cache 抽象,并且定义了多个缓存。有时,当数据发生变化时,我想驱逐多个缓存。@CacheEvict
是否可以使用 Spring 的注释来驱逐多个缓存?
caching - Ehcache:从存储为列表的缓存中删除条目
我正在使用使用 ehcache 作为实现的 Spring 3.2 缓存抽象。
我能够缓存返回对象列表的方法的输出,如下所示。
但是我无法List<Employee>
使用下面给出的代码通过@CacheEvict 在更新或删除时从缓存中存储的对象中删除特定条目
java - 什么是默认缓存键?
我们在生产环境中使用以下代码已经有一段时间了:
如您所见,这是使用相同缓存的两种不同的零参数方法。现在,在阅读了一些关于Spring 缓存的文档之后,似乎在将元素放入缓存时没有考虑方法的名称。
我们现在不清楚的是,尽管根据文档它不应该工作,但它确实有效。似乎不是只有参数用于缓存的键。如果这是真的,还有什么要考虑的。如果不是,它为什么对我们有用并且不会抛出(ClassCast)异常?
java - Spring @Cacheable 如何配置一个复杂的key
我有一个返回列表的方法,我想根据传递的参数缓存它。参数是 4 和整数如何使用 SpEL 配置它?我正在使用春季版本 4.0.6.RELEASE。
hibernate - Hibernate 查询缓存和二级缓存
我有一个这样的查询缓存。
JPAQuery dslQuery = new JPAQuery(entityManager);
QReview qReview = QReview.Review;
BooleanExpression where = QReview.review.id.in('123');
dslQuery.setHint("org.hibernate.cacheable", true);
List<Review> reviews = dslQuery.from(qReview ).where(where).distinct().list(qReview );
所有缓存参数都正确设置,所以我希望上面的列表,即 List<Review>
会被缓存?
但是当我这样做时,reviewRepository.findOne('123');
我可以看到 db 查询被触发,而不是从缓存中获取 id 123 的 Review。
注意:reviewRepository 是一个标准的 querydsl 存储库。实现CRUDRepository<Review,String>
Review 域模型有 Cacheable、Cache annotations 集。
我在这里先向您的帮助表示感谢。
java - 修改对象会改变 Ehcache 值
如果我将密码设置为空,例如如下所示。我看到的缓存值也被相应地修改,因为在下一次调用中缓存被命中并且那里的密码设置为 NULL。这是正确的行为吗?如果我想修改该对象,是否必须在每次检索后创建一个新对象。我说的是修改不是在数据库中而是在服务级别上进行修改。
java - 无法将 Spring Cache 建议添加到方法 - internalCacheAdvisor 与可缓存注释 bean 在同一批次中创建
我们重构了应用程序的某些部分,之后,虽然没有触及包含缓存方法的类,但使用 spring cachable 注释的方法停止被缓存。
经过一些调试,我们可以看到在重构并添加了一些新的 Spring bean 之后,具有 cachable 方法的 bean 现在与 internalCacheAdvisor 本身在同一批次中创建。因此无法应用 Advice,并且永远不会调用 Spring 缓存方面。所以方法结果没有被缓存,@Cachable注解不起作用。
什么机制决定可以同时创建哪些 bean,我如何调试和影响这个机制?
我查看了 Spring 方法 BeanFactoryAdvisorRetrievalHelper::findAdvisorBeans,在运行旧代码和工作代码时,它看起来像这样:
重构之后是这样的:
我们的注解类 couchbaseTranslationProvider 与 internalCacheAdvisor 是在同一批次创建的,这是不可能的。尝试应用建议代理时,我收到一条调试消息“正在跳过当前创建的顾问...”。(我认为这应该是一条错误消息!)
我们启用缓存的 POM 文件如下所示:
spring-data-jpa - 使用 CouchbaseCacheManager 并设置 TTL
有没有办法为 CouchBaseCacheManager 中的不同 CouchbaseCache 对象指定不同的 TTL?
我如何使该列表在一段时间后在缓存中过期...