import { createClient } from "redis"; import dotenv from 'dotenv'; dotenv.config(); // 创建 Redis 客户端,优化配置 const redis = createClient({ RESP: 3, url: process.env.REDIS_URL || 'redis://localhost:6379', // 优化连接配置 socket: { // 连接超时时间 connectTimeout: 10000, // 保持活动状态 keepAlive: 30000, // 重试策略 reconnectStrategy: (retries) => { // 最多重试 5 次 if (retries > 5) { return new Error('Redis reconnect failed after 5 attempts'); } // 指数退避策略 return Math.min(retries * 1000, 5000); } }, // 禁用不必要的功能 legacyMode: false, // 优化命令队列 enableReadyCheck: true, // 最大命令队列长度 maxRetriesPerRequest: 3 }); // 连接事件 redis.on('connect', () => { console.log('Redis 连接成功'); }); redis.on('error', (err) => { console.error('Redis 连接错误:', err); }); redis.on('reconnecting', () => { console.log('Redis 正在重连...'); }); redis.on('end', () => { console.log('Redis 连接已关闭'); }); // 导出前自动连接 redis.connect().catch(console.error); export default redis;