본문 바로가기
CACHE/memcached

[ memcached ] repcached 설치 (memcached replication)

by 정윤재 2012. 7. 18.

아래의 글을 볼 때 주의점은 글을 쓰기는 하나만 쓰지만 

 

설치는 2개에 똑같이 해줘야 한다는 것이다.

 

memcached 를 replication 하시려는 분들이니 만큼 그 정도는

 

당연히 아신다고 생각이 된다. 

 

1. repcached 설치

 

1-1. http://repcached.lab.klab.org/ 접속 하여 최신판 다운로드

 

나는 memcached-1.2.8-repcached-2.2.1.tar.gz 를 다운 받았다.

 

memcached 와 repcached 가 같이 들어가 있는 버전이다.

1-2. tar xvfz memcached-1.2.8-repcached-2.2.1.tar.gz

1-3. cd memcached-1.2.8-repcached-2.2.1

1-4. ./configure --prefix=/usr/local/memcached_rep --enable-replication


=====================================================================

설치가 안될 경우 아래와 같이 libevent-1.4 버전을 설치해 준다
wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz


(repcache 를 설치하려면 libevent-1.4 버전이여야함)

 

tar xvfz libevent-1.4.14b-stable.tar.gz

 

cd libevent-1.4.14b-stable

 

./configure --prefix=/usr/local

 

make

 

make install

 

=====================================================================


또한 이런 에러가 발생 하는데...

 

error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

 

ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/

 

로 링크걸어주면 된다. (이걸로 안되면 앞에 memcached 싱글로 깐 글에서

 

ldconfig 해준 부분 따라 하면 된다.)

 

그런 다음

 

make

 

make install 해주면 된다.

 

2. 실행

 

cd /usr/local/memcached_rep

 

./memcached -d -m 1024 -l local_ip -p 11211 -u user_id -x remote_ip -X11211

 

netstat -ntlp | grep 11211

 

로 확인 해 보면 둘 서버 다 11211 포트로 작동되고 있는 것을 볼 수 있다.

 

그런데 telnet local_ip 또는 remote_ip 11211 로 접속 해보면

 

한 곳은 접속이 되고 다른 곳은 접속이 안된다.

 

한 곳은 connect 가 되는 곳이고 다른 곳은 replication 이 되는 곳이라 그런것 같다.

 

어찌 됐든 정상작동되는지 확인 법은

 

아래와 같이

 

 

 

 

 

 

telnet local_ip 11211 로 접속 한 다음

 

set mykey 0 100 2

 

hello

 

를 입력 한다음

 

get mykey 를 입력 하면

 

set mykey 0 100 2
hello
STORED
get mykey
VALUE mykey 0 2
hello
END


라고 나올 것이다.

 

quit 을 입력하여 telnet 을 나오고

 

ps -ef | grep memc 를 입력 하여

 

kill 로 local 의 memcached 를 죽인 다음

 

telnet remote_ip 11211

 

로 붙어서

 

get mykey 를 입력 해 보면 replication 이

 

정상적으로 된 것을 확인 해 볼 수 있다. 

 

 

=============================================

 

번외로 memcached 의 replication 의 단점을 좀 얘기 해 보겠다.

 

내가 느끼기에 상용 서비스에 적용하기엔 무리가 있는 점이라고 하겠다.

 

1. memcached 의 싱글에서는 되는 멀티쓰레드 기능이 replication 을

 

할 때는 되지 않는다는 점이다.

 

어떤 분이 비교를 해 놓으셨는데...(출처 : http://seuis398.blog.me/70078268543 )

 

 

 

2배 차이가 난다.

 

2. 확장성에 문제가 있다.

 

이게 무슨 말이냐 하면...

 

replication을 한다는 것은 계속 장비를 늘릴 수 있다는 얘기인데...

 

여기에선 2대가 연결하면 끝이다. 더이상 연결 할 수 없다.

 

(이건 굉장히 심각하다고 생각 된다.)

 

3. 버전 업이 굉장히 느리다.

 

memcached 는 많이 사용하고 있는 듯 한데...

 

repcached 의 경우 업데이트가 몇년에 한번씩 되는 것 같다.

 

그래서 최신의 운영체제 나 라이브러리 상황을 반영 못하는 것으로 보인다.

 

예를 들어 libevent 만 하더라도 원래 나는 2.0 대를 깔았으나

 

1.4로 버전을 다운그레이드 해야 하는 불상사가 발생 하였다.(안그러면

 

컴파일도 안된다..)

 

 

3번째야 제쳐놓더라도 1,2번의 경우 상용 프로젝트에서 쓰기에 상당히

 

치명적이어서 repcached 말고 다른 방법을 찾아봐야 할 것으로 보인다.

 

'CACHE > memcached' 카테고리의 다른 글

[ memcached ] memcached 설치  (0) 2012.07.17

댓글