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

SpringBoot集成Memcached在Docker Compose部署启动失败求助

问题原因及解决方案

核心问题

你把Spring缓存类型配置成了GENERIC,但io.sixhours.memcached-spring-boot-starter需要指定专属的缓存类型,Spring Boot无法自动为GENERIC类型适配Memcached的CacheManager,导致启动时找不到可用的缓存管理器。

具体修复步骤

  • 修正缓存类型配置:在application.properties中把spring.cache.type的值从GENERIC改为memcached,这是该starter对应的缓存类型标识,Spring Boot会自动识别并创建MemcachedCacheManager实例。
  • 验证Memcached连接配置:确保Memcached的地址配置正确,因为容器在同一网络ci_network中,直接用docker-compose里Memcached服务的名称作为主机名,示例配置:
    spring.memcached.servers=memcached:11211
    spring.memcached.connection-timeout=5000
    spring.memcached.expiration=3600
    
  • 检查依赖版本兼容性:memcached-spring-boot-starter:1.3.1适配的是Spring Boot 2.x版本,如果你的应用用了Spring Boot 3.x,需要升级starter到2.x版本(对应Spring Boot 3.x),否则会出现依赖冲突或自动配置失效的问题。
  • 确认Docker Compose健康检查有效性:确保Memcached的健康检查确实能判断服务就绪,示例配置如下:
    services:
      memcached:
        image: memcached:latest
        networks:
          - ci_network
        healthcheck:
          test: ["CMD", "timeout", "1", "bash", "-c", "cat < /dev/null > /dev/tcp/localhost/11211"]
          interval: 5s
          timeout: 3s
          retries: 5
      ted-search:
        build: .
        networks:
          - ci_network
        depends_on:
          memcached:
            condition: service_healthy
    
    这样能保证应用启动时Memcached已经完全就绪,避免因连接失败导致CacheManager初始化失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:15:05