shuzhiren-comfyui/任务队列后端/redis/index.js

54 lines
1.2 KiB
JavaScript

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;