|
|
|
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 allmake[1]: Entering directory `/usr/share/redis/src' CC adlist.o/bin/sh: cc: command not foundmake[1]: *** [adlist.o] 오류 127make[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 allmake[1]: Entering directory `/usr/share/redis/src' CC adlist.oIn 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] 오류 1make[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 testmake[1]: Entering directory `/usr/share/redis/src'You need tcl 8.5 or newer in order to run the Redis testmake[1]: *** [test] 오류 1make[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 INFOREDISPORT=6379EXEC=/usr/share/redis/src/redis-serverCLIEXEC="/usr/share/redis/src/redis-cli"# exists passwordif [ $2 ] then CLIEXEC="$CLIEXEC -a $2"fiPIDFILE=/var/run/redis.pidCONF="/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 barOKredis> get foo"bar" |
