# Redis wget 으로 받아 설치.
Redis 다운로드 (0.0.0 -> 원하는 버전으로)
$ wget https://download.redis.io/releases/redis-0.0.0.tar.gz
압축 해제
$ tar xzvf redis-0.0.0.tar.gz
의존성 패키지 설치
$ cd ./redis-0.0.0/deps
/redis-0.0.0/deps] $ make hiredis jemalloc linenoise lua
Redis 설치
/redis-0.0.0/deps] $ cd ../
/redis-0.0.0] $ make
※ jemalloc 오류 시
$ yum install jemalloc
※ make[1]: cc: Command not found 라는 메시지와 함께 에러가 난다면 gcc의 설치를 먼저 진행
$ yum install gcc
※ systemd-devel (redis 테스트)
$ yum install systemd-devel
# 자동 설정으로 작성 시
/redis-0.0.0] $ cd ./utils
/redis-0.0.0/utils] $ install_server.sh
------------------
Please select the redis port for this instance : [6379] - 포트 설정.
Please select the redis config file name [/etc/redis/.6379.conf] - Config 파일 이름 설정.
Please select the redis log file name [/var/log/redis_6379.log] - Log 파일 이름 설정.
Please select the redis data directory for this instance [/var/lib/redis/6379] - 데이터 폴더 이름 설정.
Please select the redis execute path [] - Redis 서버 파일 경로 작성
-------------------
# 수동 설정으로 작성 시
$ cd /etc/redis
디렉토리 없다면 생성
/etc] $ sudo mkdir redis
config 항목 수정
/etc/redis] $ vi. [포트].conf
------------------
bind 0.0.0.0 (127.0.0.1 -> 0.0.0.0 로컬 호스트에서 모든 호스트로 접속 가능하도록)
protected-mode yes
port [포트]
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes (데몬 실행 사용)
supervised no
pidfile /var/run/redis_[포트].pid
loglevel notice
logfile /var/log/redis_[포트].log
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis/[포트]
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-syno no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes (append-only file 데이터 저장 유무)
sppendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
cluster-enabled yes
cluster-config-file nodes-[포트].conf
cluster-node-timeout 3000
cluster-require-full-coverage yes
slowlog-log-slower-then 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
last-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 512
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
------------------
권한 수정
/etc/redis] $ sudo chkmod 644 [포트].conf
redis 서비스파일 설정
/etc/redis] $ cd ../init.d
/etc/init.d] $ vi redis_[포트]
------------------
CLIEXEC = /[Redis 서버 파일 경로]/redis-cli
PIDFILE = /var/run/redis_[포트].pid
CONF = "/etc/redis/[포트].conf"
REDISPORT = "[포트]"
EXEC = /[Redis 서버 파일 경로]/redis-server
CLIEXEC = /[Redis 서버 파일 경로]/redis-cli
PIDFILE = /var/run/redis_[포트].pid
CONF = "/etc/redis/[포트].conf"
REDISPORT = "[포트]"
case "$1" in
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
;;
status)
PID=$(cat $PIDFILE)
if [ ! -x /proc/${PID} ]
then
echo 'Redis is not running'
else
echo "Redis is running ($PID)"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Please use start, stop, restart or status as first argument"
;;
esac
------------------
권한 수정
/etc/init.d] $ sudo chkmod 755 redis_[포트]
덤프 & aof 저장 위치 설정.
$ cd /var/lib/redis
사용할 포트 이름으로 된 디렉토리 없다면 생성.
/var/lib/redis] $ mkdir [포트]
# redis 서버 실행
$ cd [redis 설치 경로]/redis-0.0.0/src
/redis-0.0.0/src] $ sudo ./redis-server -p [포트].conf (설정한 port 만큼 구동)
프로세스 구동 여부 확인
$ ps -ef | grep redis
클라이언트 접속 (redis-cli -h [레디스 서버의 IP주소] -p [포트번호] -a [비밀번호])
/redis-0.0.0/src] $ ./redis-cli -h [IP] -p [Port]
동작 테스트
[IP]:[Port]> ping ("PONG" 나오면 성공)
[IP]:[Port]> set testKey testValue
[IP]:[Port]> get testKey ("testValue" 나오면 성공)
'[ Programing ] > Redis' 카테고리의 다른 글
Redis 레퍼런스. (0) | 2024.05.21 |
---|---|
[Redis] Reference (0) | 2023.03.02 |
[Linux] Redis Cluster 설정 (0) | 2022.10.20 |
Redis 명령어 (0) | 2021.04.21 |