반응형

프로젝트를 진행하면서, 톰캣(TomCat)의 세션 클러스터링(Session Clustering)을 구현해야 했었는데, 인프라 팀에서 세션 클러스터링을 구현하지 못하여 다른 방식을 채택했어야 했다. 세션 클러스터링을 위해 서버 증설도 하였고, 메모리 증설, 트래픽 감소를 위한 작업 등을 진행했었다. 근데, 결국엔 세션 클러스터링을 구현하지 못해 채택한 방식이 Redis의 In-Memory 방식이다.

 

1. Redis In-Memory 방식의 장점

Redis를 사용하는 이유는 메모리에 데이터를 올리다보니 속도가 빠르다는 장점이다. 결국엔 세션 클러스터링을 하게 된 경우에는 서버에 세션 데이터를 저장한다. 근데, Redis는 메모리에 세션 데이터를 올리기 때문에 속도가 빠르다.

 

2. Redis In-Memory 방식의 단점

Redis In-Memory 방식은 메모리에 올리기 때문에 속도가 빠르다는 장점이 있다. 근데, 메모리에 올리는 경우에는 휘발성 메모리다. 만약 메모리에 올린 컴퓨터가 전원이 꺼진다면 메모리에 올라간 세션 데이터가 사라진다. 이 문제가 Redis In-Memory 방식의 가장 큰 단점이 된다.

 

Redis In-Memory 방식은 우리가 웹에서 사용하는 웹서버 여러 개와 Redis 외부 서버를 따로 사용을 한다. 그래서, 기존 웹서버 같은 경우에는 서버를 다중화하여서 서버 다운에 대한 문제점을 보완을 했는데, Redis In-Memory 방식의 외부 서버는 단일 서버로 구성하게 되면, 이 경우  웹 서버까지 큰 영향을 미치게 된다.

 

또한, 웹서버와 Redis 서버는 1개의 서버에서 이루어지는 것이 아닌 외부 서버에 존재한다. 그래서, 외부에 있는 Redis 서버에서 데이터를 I/O를 하기 때문에, 속도적인 통신 측면에서 속도가 느려질 수 있다. 근데, 그렇게 큰 체감은 없었다.(내가 느끼기에는)

 

그래서, Redis를 사용하려면 Redis의 서버 이중화도 해야 하지 않을까 생각이 된다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기