You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Infinispan集群启动/编程创建缓存及标签创建求助

针对你的Infinispan + Spring缓存问题的解决方案

首先先确认你的依赖配置:

org.infinispan', name: 'infinispan-spring4-common', version: '9.1.7.Final'

一、编程方式创建缓存 & 服务器启动时创建缓存

1. 编程方式创建远程缓存

你当前代码里的remoteCacheManager.getCache("cart", true)确实会在缓存不存在时自动创建,但这是使用默认缓存配置创建的。如果需要自定义缓存的配置(比如过期时间、存储类型等),可以通过RemoteCacheManager的管理API来创建:

// 在你的RemoteCacheManager初始化后添加
RemoteCacheManagerAdmin admin = remoteCacheManager.administration();
// 创建带自定义配置的缓存,示例设置条目过期时间为1小时
Configuration cacheConfig = new ConfigurationBuilder()
    .expiration().lifespan(3600, TimeUnit.SECONDS)
    .build();
admin.createCache("cart", cacheConfig);

如果只是需要创建默认配置的缓存,你现有的getCache("cart", true)就足够了,第二个参数true就是“不存在则创建”的开关。

2. 在Infinispan服务器启动期间创建缓存

如果希望缓存在服务器启动时就自动存在,不需要客户端触发创建,有两种常用方式:

  • 通过服务器配置文件:在Infinispan服务器的standalone.xml(或domain.xml)中添加缓存定义。比如在<cache-container>节点下新增:
    <cache name="cart" default-cache="true">
        <expiration lifespan="3600000"/> <!-- 1小时过期 -->
    </cache>
    
    重启服务器后,这个缓存就会自动创建。
  • 通过服务器CLI脚本:编写一个CLI脚本(比如create-cache.cli),内容如下:
    connect
    cache-container default
    create cache --template=org.infinispan.DIST_SYNC cart
    
    服务器启动后执行这个脚本,或者把脚本放到服务器的启动流程中自动执行。

二、关于标签infinispan-as-spring-cache-provider无法创建的问题

Stack Overflow创建新标签需要账号满足至少1500声望值的条件,如果你的账号声望不够,就无法直接创建这个新标签。建议你使用现有的相关标签来替代,比如:

  • infinispan:核心Infinispan技术标签
  • spring-cache:Spring缓存框架相关标签
  • hotrod-client:Infinispan Hot Rod客户端标签
    这些标签已经有活跃的社区讨论,完全可以覆盖你的问题场景。

三、你的代码小优化提示

注意到你代码里的@Value注入有个小疏漏:

@Value("infinispan.admin.user") String user, @Value("infinispan.admin.password") String pwd

这里缺少了${},应该修改为:

@Value("${infinispan.admin.user}") String user, @Value("${infinispan.admin.password}") String pwd

否则Spring无法正确读取配置文件中的属性值。

内容的提问来源于stack exchange,提问作者Chandra4You

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:16:54