initial commit
This commit is contained in:
49
lib/redis.ts
Normal file
49
lib/redis.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { createClient } from 'redis'
|
||||
|
||||
// Only create Redis client if REDIS_URL is provided
|
||||
let client: ReturnType<typeof createClient> | null = null
|
||||
|
||||
if (process.env.REDIS_URL) {
|
||||
client = createClient({
|
||||
url: process.env.REDIS_URL,
|
||||
})
|
||||
|
||||
client.on('error', (err) => {
|
||||
console.error('Redis Client Error:', err)
|
||||
})
|
||||
|
||||
client.on('connect', () => {
|
||||
console.log('Connected to Redis')
|
||||
})
|
||||
|
||||
client.on('ready', () => {
|
||||
console.log('Redis Client Ready')
|
||||
})
|
||||
|
||||
client.on('end', () => {
|
||||
console.log('Redis Client Disconnected')
|
||||
})
|
||||
} else {
|
||||
console.warn('Redis disabled - REDIS_URL not provided')
|
||||
}
|
||||
|
||||
// Connect to Redis
|
||||
const connectRedis = async () => {
|
||||
if (!client) {
|
||||
console.warn('Redis client not initialized - sessions will use memory store')
|
||||
return null
|
||||
}
|
||||
|
||||
if (!client.isOpen) {
|
||||
try {
|
||||
await client.connect()
|
||||
} catch (error) {
|
||||
console.error('Failed to connect to Redis:', error)
|
||||
// Don't throw error - let app continue without Redis
|
||||
return null
|
||||
}
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
export { client as redisClient, connectRedis }
|
||||
Reference in New Issue
Block a user