티스토리 뷰

반응형

보통 레디스는 세션 저장 용도로 많이 사용하는데, express-session과 같이 연동을 지원합니다. 먼저 npm i connect-redis 로 express용 redis 설치부터 진행합니다.

$ npm i connect-redis

그 다음으로 express 에서 적용되는 소스 코드입니다.

const session = require('express-session')
const connectRedis = require('connect-redis')
const RedisStore = connectRedis(session)
const redisStoreInfo = { 
   url: 'localhost:6379',  // 레디스 호스팅 주소
   logErrors: true // 레디스 에러 로깅
}

const sessionInfo = {
   resave: false,
   saveUninitialized: false,
   secret: sessionSecret,
   name: 'sessionId',
   cookie: {
      httpOnly: true,
      secure: false,
   },
   store: new RedisStore(redisStoreInfo)
}

app.use(session(sessionInfo))

Store는 세션을 어디에 저장할지 고르는 옵션 정보로, 기본값은 서버의 메모리 스토리지에 저장합니다. 따라서 서버가 재기동된다면 세션 데이터들이 다 날아가게 되는데, 이것을 RedisStore로 바꾸게 되면 세션 데이터를 Redis에 저장하게 됩니다. 즉, 재기동을 하여도 세션이 날라가는 문제가 발생하지 않도록 처리해줄 수 있습니다. 

logErrors 옵션은 필요에 따라 꺼도 무방합니다.

반응형
댓글
공지사항