|
|
CentOS 6.5에 redis 2.8.6 설치하기
설치하기
1 2 3 4 5 6 7 | $ wget http: //download .redis.io /releases/redis-2 .8.19. tar .gz $ tar zxvf redis-2.8.6. tar .gz # 설치 폴더의 이름을 변경 # 개인 취향이니 변경하지 않아도 된다. $ mv redis-2.8.6 redis $ cd redis $ make |
컴파일 오류 발생
# gcc 가 없을 때 발생
1 2 3 4 5 6 7 | cd src && make all make [1]: Entering directory ` /usr/share/redis/src ' CC adlist.o /bin/sh : cc: command not found make [1]: *** [adlist.o] 오류 127 make [1]: Leaving directory ` /usr/share/redis/src ' make : *** [all] 오류 2 |
gcc가 없는 것이니, 설치하자
1 | $ yum -y install gcc |
# jemalloc이 없을 때 발생
1 2 3 4 5 6 7 8 9 | cd src && make all make [1]: Entering directory ` /usr/share/redis/src ' CC adlist.o In file included from adlist.c:34: zmalloc.h:50:31: error: jemalloc /jemalloc .h: 그런 파일이나 디렉터리가 없습니다 zmalloc.h:55:2: error: #error "Newer version of jemalloc required" make [1]: *** [adlist.o] 오류 1 make [1]: Leaving directory ` /usr/share/redis/src ' make : *** [all] 오류 2 |
리빌드 시킨다.
1 2 3 | $ make distclean $ make $ make test |
# tcl이 없을 때 발생
1 2 3 4 5 6 | cd src && make test make [1]: Entering directory ` /usr/share/redis/src ' You need tcl 8.5 or newer in order to run the Redis test make [1]: *** [ test ] 오류 1 make [1]: Leaving directory ` /usr/share/redis/src ' make : *** [ test ] 오류 2 |
tcl 설치
1 2 | $ yum -y install tcl $ make test |
컴파일 오류를 해결하면 모든 테스트가 ok되는 것을 볼 수 있다
서버 자동 시작
vi /usr/share/redis/redis.conf 파일을 열어서 데몬으로 실행할 수 있도록 설정
1 | daemonize yes |
vi /etc/init.d/redis-server 파일을 생성하여 아래코드 복사
경로설정은 환경에 맞게 수정해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #! /bin/sh ### BEGIN INIT INFO # Provides: redis-server # Description: redis-server - Persistent key-value db # chkconfig: - 85 15 ### END INIT INFO REDISPORT=6379 EXEC= /usr/share/redis/src/redis-server CLIEXEC= "/usr/share/redis/src/redis-cli" # exists password if [ $2 ] then CLIEXEC= "$CLIEXEC -a $2" fi PIDFILE= /var/run/redis .pid CONF= "/usr/share/redis/redis.conf" start() { if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi } stop() { if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$( cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/ ${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; info) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else $CLIEXEC info fi ;; *) echo "Usage: start|stop|restart [password]" ;; esac |
# 서비스 등록
1 2 3 4 | $ chmod +x /etc/init .d /redis-server $ chkconfig --add redis-server $ chkconfig --level 2345 redis-server on $ service redis-server start [password] |
테스트 해보기
1 2 3 4 5 | $ /usr/share/redis/src/redis-cli [-h my redis-server ip] [-p my redis-server port] [-a my redis-server password] redis> set foo bar OK redis> get foo "bar" |