본문 바로가기

Redis

[Redis] tomcat 에 설정

서버 이중화시 세션을 공유해야 하는 이슈가 있다.

A - B 서버 간 세션이 원활히 공유 되어야 서비스에 문제가 없기 때문에 Redis 라는 것을 통해 공유해보자.

여기서 설치는 생략.

서버1 : 192.168.1.1 (master)

서버2 : 192.168.1.2

각각의 IP 라고 보고 진행해본다.

Redis 설정 전에 Tomcat 설정부터 해보자.

각각 톰켓 설치된 경로에 /lib 에 들어가서

ㄴtomcat-redis-session-manager-2.0.0.jar

ㄴjedis-2.5.2.jar

ㄴcommons-pool2-2.2.jar

를 추가 해준다.

이후 /conf/context.xml 에 들어가서

<Context> 안에 아래 내용을 넣어주자.

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"

host="192.168.1.1"

port="6379"

password="Redis비밀번호"

database="0"

maxInactiveInterval="30"/>

host 에는 matser 로 사용할 IP 를 넣었다.

# Redis 설정

# Redis 시작/중지

sudo /etc/init.d/redis_6379 start

sudo /etc/init.d/redis_6379 stop

설정파일 위치 /etc/redis/6379.conf

서버1 Master 설정

requirepass 부분을 찾아서 주석 해제 후 비밀번호 입력

서버2 Slave 설정

masterauth 부분을 찾아서 주석 제거 후 위에서 설정한 Master 비밀번호 입력

ㄴ ex) masterauth redis비밀번호

# repl-ping-slave-period 10 이 부분 주석 제거

# repl-timeout 60 이 부분 주석 제거

적용 후 Redis 재시작 후 로그 확인

로그 위치 /var/log/redis_6379.log

서버1 Master 로그에서 "Synchronization with slave ip:6379 succeeded" 확인

서버2 Slave 로그에서 "MASTER <-> SLAVE sync: Finished with success" 확인

단순 세션정도에 공유는 기본(메모리)로 가능하지만 내용이 커진다면 RDB처럼 사용 가능한 옵션도 있다.

또한 Slave 로 설정된 서버2는 Read 만 가능하므로 상황에 맞게 사용해야 한다.

'Redis' 카테고리의 다른 글

[Redis] Redis 시작시 Warning 처리  (0) 2020.02.06