'2014/05'에 해당되는 글 1건

  1. 2014.05.15 Debian 계열에서 redis-server를 여러 개 띄우기 2

참고 자료:

http://chrislaskey.com/blog/342/running-multiple-redis-instances-on-the-same-server/

http://makandracards.com/makandra/7965-run-multiple-redis-servers-on-ubuntu


작업 환경:

Ubuntu 12.04.4 LTS x86_64 / Xeon E5640 @ 2.67Ghz / 6 core / 4G

redis 2.8.7 x86_64


이번에 해외에 게임을 새로 퍼블리싱 하는데 CCU를 1분마다 체크해달라고 한다. 그런데 기존 코드를 크게 고치기엔 부담이 있어서 그냥 redis instance를 하나 더 띄워서 글로벌 키를 다 걸고 EXPIRE를 걸어서 DBSIZE만 반환해주면 되겠다, 라는 생각이 들어서 새 인스턴스를 띄우게 되었다.


굵은 글씨가 커맨드이니 따라하려면 굵은 글씨에 집중하자.



1. 설정 파일 복사

기존의 설정 파일을 복사해야 한다. 기존의 설정 파일은 /etc/redis/에 들어있다. 새 Redis 개체는 'redis-cache-server'이며, 기존의 서버는 'redis-server'로 명명하겠다.


cd /etc/redis/

sudo cp redis.conf redis-cache.conf

sudo vi redis-cache.conf


2. 설정 파일 편집

 복사한 redis-cache.conf 파일의 몇 가지를 수정해야 하는데 확인해 보자.별표가 찍혀있는 것은 해외 사이트에선 언급하진 않았지만 본인이 찝찝해서 바꾼 것.


 - pidfile

  pid가 기록될 폴더이다. 내 환경 기준으로 /var/run/redis/redis.pid로 되어있다. 이걸 /var/run/redis/redis-cache.pid로 수정했다.


 - port

 기본 port는 6379이다. 6380으로 수정한다.


 - logfile

 내 환경에서 /dev/null에 작성이 되어있는데, 특정 경로를 지정해도 된다. 귀찮아서 수정하지 않았다.


 - dbfilename *

 redis는 지정된 주기마다 데이터의 내용을 파일에 기록한다. 그 파일을 설정하는 것인데. 기본 이름은 redis.rdb인데, redis-cache.rdb로 수정한다.


 - dir *

 현재 /var/lib/redis 로 되어있는데, 영 찝찝해서 /var/lib/redis-cache로 설정했다.


3. 폴더 생성 및 권한 설정

 활동할 폴더를 설정해 주었으니 폴더를 생성해 주어야한다.

sudo mkdir /var/lib/redis-cache

sudo chown redis.redis /var/lib/redis-cache


4. init 스크립트 작성

새 redis 개체를 구동시키기 위한 스크립트를 작성한다. 여기에 붙여넣기엔 이쁘지 않아서 gist에 링크를 참고하도록 한다. 파일명은 redis-cache-server로 했다.

/etc/init.d/redis-cache-server

경로에 파일을 생성했다.


https://gist.github.com/anonymous/3759a0849276b8582000


본인이 수정을 해야 할 때 참고해야 할 부분은 아래와 같다

sudo vi /etc/init.d/redis-cache-server


 - DAEMON_ARGS

   service daemon에 들어갈 설정 파일의 경로이다. 상단에서 복사해서 수정한 파일의 경로를 적으면 된다.

 - NAME

   새로 올릴 redis instance의 이름을 기재하면 된다. 왠만하면 shell과 이름을 같게 하면 좋을 것 같다.

 - DESC

   새로 올릴 redis instance의 설명을 기재하면 된다. 귀찮아서 같게 적는다.

 - PIDFILE

   redis-cache.conf에 적은 pid 파일의 경로를 적어준다.


그 후에, 실행 권한을 부여하기 위해


sudo chmod +x /etc/init.d/redis-cache-server


를 실행한다.


5. 설정 파일 배포 및 실행 테스트

 update-rc.d 를 통하여 설정 파일을 배포한다.


sudo update-rc.d /etc/init.d/redis-cache-server defaults


를 입력한 후에


sudo /etc/init.d/redis-cache-server


를 실행해서 구동에 실패했다면 위의 내용을 다시 확인해 올려본다. 구동에 성공했다면(별다른 말이 없다면)


redis-cli -p 6380

을 통해서 cli 접근이 되는지 확인하고 사용해보자.





뭐 순조롭게 잘 돌아가고 있는 것 같다.



Posted by TY
,