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

如何在NestJS应用中连接ElastiCache Redis集群

NestJS 连接 AWS ElastiCache Redis 可行配置方案

你已经完成了Elastic Beanstalk、RDS、ElastiCache之间的安全组关联和网络打通,只需要调整NestJS侧CacheModule的连接参数即可,不需要额外引入复杂依赖。

前置准备

先从ElastiCache控制台获取正确的连接信息:

  • 非集群模式Redis:复制集群详情页的主端点(Primary Endpoint),记录对应端口(默认6379)
  • 集群模式(Cluster Mode Enabled)Redis:复制集群详情页的配置端点(Configuration Endpoint),记录对应端口
  • 如果创建集群时开启了AUTH认证,提前准备好设置的访问令牌,未开启则不需要准备

具体配置代码

你本地连接Redis用的是cache-manager-redis-store依赖,原有依赖不需要更换,直接修改注册参数即可。

非集群模式配置

import { CacheModule } from '@nestjs/cache-manager';
import { redisStore } from 'cache-manager-redis-store';

@Module({
  imports: [
    CacheModule.register({
      store: redisStore,
      host: '复制的ElastiCache主端点纯域名,不要加redis://前缀、不要带端口',
      port: 6379, // 替换为控制台显示的实际端口
      password: '开启AUTH认证时填写,未开启直接删除该字段',
      ttl: 600, // 按业务需求配置默认缓存过期时间,单位秒
      tls: false, // 开启ElastiCache传输加密时设为true,同VPC内网无加密访问设为false
    }),
    // 其他模块引入
  ]
})
export class AppModule {}

集群模式配置

如果你的Redis开启了集群模式,需要额外增加集群配置参数:

import { CacheModule } from '@nestjs/cache-manager';
import { redisStore } from 'cache-manager-redis-store';

@Module({
  imports: [
    CacheModule.register({
      store: redisStore,
      host: '复制的ElastiCache配置端点纯域名',
      port: 6379,
      password: '开启AUTH认证时填写,未开启直接删除该字段',
      clusterConfig: {
        slotsRefreshTimeout: 2000,
        dnsLookup: (address, callback) => callback(null, address),
        enableReadyCheck: true,
      },
      ttl: 600,
      tls: false, // 开启传输加密时设为true
    }),
  ]
})
export class AppModule {}

高版本依赖兼容写法

如果你用的是cache-manager@5.x、cache-manager-redis-store@3.x以上版本,遇到类型校验报错时,可以用registerAsync写法绕过,功能完全一致:

CacheModule.registerAsync({
  useFactory: () => ({
    store: redisStore,
    host: 'ElastiCache对应端点域名',
    port: 6379,
    password: '有认证则填写',
    tls: false,
  })
})

常见踩坑排查

  • 不要在host字段拼接redis://协议头、端口号,host只填纯域名,端口单独在port字段配置
  • 确认ElastiCache绑定的安全组入站规则:放行EB实例关联安全组的6379端口TCP访问,不需要开放0.0.0.0/0公网访问
  • 开启ElastiCache传输加密时必须把tls字段设为true,否则连接会被直接重置
  • ElastiCache默认仅支持同VPC内网访问,本地开发环境没有VPC网络权限无法直连,部署到EB环境后再测试连接即可
  • 不要手动解析ElastiCache端点的IP填写,AWS会自动做节点故障切换时的DNS更新,直接用官方提供的域名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:48:21