Nods.js – Store session into Redis

Nodejs 공부할 겸 규모가 작은 웹사이트를 제작중입니다.

Nodejs 개발 시 Sequalize ORM 을 통해 DB를 핸들링 하면 거의 대부분의 디비작업을 서버사이드만으로 가능해집니다. 세션관리도 Sequalize 를 통해 DB에 저장하여 하려던 차에 빈번한 sql update 가 왠지 불안하게 여겨지네요.

접속자가 매 페이지 접속시에 expires  datetime 갱신을 위한 update 쿼리를 수행한다면 감당이 안되겠다고 여겨져 Session 저장에 대해서는 Redis 로 전환해보았습니다.

* 저의 경우 웹서버 인프라는 직접 구축하지 않고 AWS를 이용하는데요, AWS RDS 의 경우 완전관리형에 목적을 두므로 동시접속에 대한 처리를 어느정도 하려면 On-premis 에 비해 비용이 많이 추가되는 편입니다.

 

먼저 Redis 에 대해서 알아보죠..

 

Redis 는 REmote DIctionary Server 의 약자이며 SQL 과 같은 데이터베이스 서버이나 메모리기반 데이터저장소이며 NoSQL DBMS 로 분류되며 Memcached 와 같은 In-Memory 솔루션 입니다.

데이터베이스서버, 캐시, 세션저장소 등으로 사용될 수 있습니다.

 

장점은 여러가지가 있지만 당연히 메모리 기반이라 엄청 빠르다는 점입니다.

단점 역시 여럿 있지만 메모리를 데이터저장시에 필요한 배로 먹는다는 점이네요 ^^;;

 

 

[Mac OSX 에 redis 설치 및 레디스서버 스타트]

$ brew install redis

 

로컬 개발 환경일지라도 데이터 저장을 위해서는 개발컴퓨터에 redis server 를 설치 및 start 해주어야 합니다. 시작 명령은 아래와 같습니다.

$ redis-server

 

 

 

[참조] https://goodgid.github.io/Redis/