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

MacBook Pro M1通过IntelliJ启动项目时Embedded Redis启动失败报错

问题排查与解决方案

根因定位

从提供的信息可明确两个核心触发原因:

  • 端口占用:Redis默认端口6379已被PID为3387的本机Redis进程占用,项目内置的嵌入式Redis无法绑定该端口,对应端口查询结果如下:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 
redis-ser 3387 josephantony 6u IPv4 0x9c37a0d6c1c8e2c9 0t0 TCP localhost:6379 (LISTEN) redis-ser 3387 josephantony 7u IPv6 0x9c37a0d6ba1e9219 0t0 TCP localhost:6379 (LISTEN)
  • 架构兼容问题:MacBook Pro M1为ARM架构,旧版本embedded-redis依赖默认携带x86架构的Redis二进制文件,存在架构不兼容无法启动的问题,对应错误栈核心报错为Can't start redis server。

分步解决步骤

1. 释放被占用的6379端口

  • 执行命令终止已运行的Redis进程:kill -9 3387
  • 执行lsof -i:6379验证端口是否释放,无输出即为空闲,此时可先重启项目验证是否能正常启动
  • 若Redis为开机自启,可执行brew services stop redis关闭自启(适用于Homebrew安装的Redis)

2. 兼容M1架构适配(释放端口后仍报错时操作)

旧版本embedded-redis不支持ARM架构,可任选以下一种方案处理:

  • 方案一:替换适配版本:修改项目依赖中的embedded-redis为支持ARM架构的社区适配版本
  • 方案二:指定本地Redis路径:修改EmbeddedRedisConfiguration配置类,在初始化RedisServer时指定本地已安装的可执行Redis路径,示例代码如下:
RedisServer redisServer = RedisServer.builder()
        // 替换为你本地Redis的实际安装路径,Homebrew安装的默认路径为/opt/homebrew/bin/redis-server
        .redisExecProvider(() -> new File("/opt/homebrew/bin/redis-server"))
        .port(6379)
        .build();
  • 方案三:禁用嵌入式Redis:直接使用本地已启动的Redis服务,注释掉EmbeddedRedisConfiguration类的生效注解,修改项目配置文件中的Redis连接地址为localhost:6379即可。

3. 验证修复效果

重启项目,若无BeanCreationException相关报错,Redis服务初始化正常即为修复成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:36:01