사용환경
Tomcat 7.0.57 (minor version 은 40 보다 큰 버전을 사용할 것을 권장, 40 까지는 보안문제가 있었다 함)
memcached 1.8.3
jdk1.7.0_45
우선 memcached 가 설치돼 있어야 한다
centos 에서 memcached 설치하기
https://www.lullabot.com/articles/installing-memcached-on-redhat-or-centos
memcached 는 아래에서 다운 받아 설치한다
http://memcached.org/downloads
윈도우 64비트용은 구글에 memcached 윈도우 또는 각종 단어로 검색하여 다운받는다
http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip
되도록 윈도우가 아닌 환경에 설치할 것을 권장한다.
session id 는 다른데 session 공유는 된다던지
session 공유는 되는데 session id 가 다르다던지 하는 등 원하는대로 작동하지 않을 수 있다.
윈도우 8.1 64비트 에서는 session id 는 다른데 session 공유는 됐다.
설정은 아래 링크에 자세히 나와 있으니 참고하여 설정한다
https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
아니면 아래 링크들에서 jar 파일을 받아서
{TOMCAT_HOME}/lib 아래에 넣어준다
http://repo1.maven.org/maven2/de/javakaffee/msm/msm-kryo-serializer/1.8.3/
http://repo1.maven.org/maven2/de/javakaffee/kryo-serializers/0.11/
http://repo1.maven.org/maven2/com/googlecode/kryo/1.04/
http://repo1.maven.org/maven2/com/googlecode/minlog/1.2/
http://repo1.maven.org/maven2/com/googlecode/reflectasm/1.01/
http://repo1.maven.org/maven2/asm/asm/3.2/
http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/1.8.3/
http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc7/1.8.3/
그리고 {TOMCAT_HOME}/conf/context.xml 을 다음과 같이 수정한다
이런식으로 설정하고나면 session 의 값들이 memcached 가 설치된 곳만 바라보게 된다
그래서 같은 브라우저라면 같은 session id 가 나오고 session 에 같은 값들이 저장되게 된다
하나의 톰캣에 여러 context 도 같은 session 을 공유하게 되고
여러 톰캣의 설정을 같게 하여 톰캣을 여러개 띄워도 같은 session 을 공유하게 된다
memcached-tool 명령어로 memcached 에 저장된 데이터나 상태를 볼 수 있다
(원하는대로 들어있지 않다 ㅠㅠ)
memcached-tool localhost:11211 [display]
memcached-tool localhost:11211 stats
memcached-tool localhost:11211 dump