redis
3.x, redis
4.x 버전 사이에 변경사항이 생겨서 connect-redis
를 3.x 처럼 설정해서 사용할 경우 아래와 같은 에러가 발생한다.
Error: A client must be directly provided to the RedisStore
이 에러는 참고링크를 통해서 설정을 수정하여 해결할 수 있다.
//redisClient.js
const redis = require('redis')
const Logger = require('./logger')
require('dotenv').config()
const redisClient = redis.createClient({
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT,
password: process.env.REDIS_PASSWORD
})
redisClient.unref()
redisClient.on('ready', () => {
Logger.debug('✅ redis is ready')
})
redisClient.on('connect', () => {
Logger.debug('✅ redis is connected')
})
redisClient.on('reconnecting', () => {
Logger.debug('✅ redis is reconnecting')
})
redisClient.on('end', () => {
Logger.debug('✅ redis is end')
})
redisClient.on('error', (error) => {
Logger.error(error)
})
module.exports = redisClient
//app.js
const redisClient = require('./redisClient')
store: new RedisStore({ client: redisClient })