redis 6.2.6 설치

catchv·2021년 10월 14일
0

redis

목록 보기
1/1

redis는 정식으로 rpm을 제공하지 않고 있어 make해야 함.
(일부 rpm 제공 사이트에서 redis의 rpm을 제공하고 있음.)

컴파일 및 test를 위한 프로그램 설치

# 빌드를 위한 make 설치
dnf -y install make
# c 컴파일러 설치
dnf -y install gcc
# test를 위한 파일
dnf -y install tcl tcl-devel which

tcl, tcl-devel은 make test시에 사용됨.
which는 install에서 사용함. ( docker로 설치시 이게 없어서 install이 안되는 경우가 있음.)

redis 컴파일 및 설치

redis.io에서 경로 확인

# redis 6.2.6 download
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
# 압축 풀기
tar zxvf redis-6.2.6.tar.gz
# 압축 경로 이동
cd redis-6.2.6
# 컴파일로 남아 있는 파일이 있는 경우 에러가 발생하므로 clean으로 처리
make distclean
# redis 컴파일
make
# redis 설치
make install

redis는 install로 설치시 기본 경로로 /usr/local/bin을 사용.

만약 경로를 변경하고자 하면 src/Makefile 파일의 아래 부분을 수정.
PREFIX, INSTALL_BIN 의 경로를 수정

redis 기본 설정

redis를 특정 계정으로 실행하기 위해서 redis의 계정을 생성

useradd --system --no-create-home redis
# config file 생성
mkdir -p /etc/redis/
# 압축 푼 redis 폴더에 redis.conf가 존재함.
cp redis.conf /etc/redis/redis.conf
# redis 계정이 접근 가능하도록 권한 설정 
chown -R redis:redis /etc/redis/

로그 파일 및 dump 파일 생성 경로 생성

# dump 파일 경로
mkdir -p /var/lib/redis
chown -R redis:redis /var/lib/redis/
# log 파일 경로
mkdir -p /var/log/redis/
chown -R redis:redis /var/log/redis/

redis.conf 수정

# 시작시 필요 없는 로그 등을 안보이게 함.
always-show-logo no
# daemon 형태로 프로그램 실행, pid 파일 생성 됨, 
daemonize yes
# dump 파일 저장 경로, 'dbfilename dump.rdb'에서 사용 됨.
dir "/var/lib/redis/"
# log 출력 경로 설정, 설정하지 않으면 기본 출력으로 출력 됨.
logfile "/var/log/redis/redis.log"

실행

/usr/local/bin/redis-server /etc/redis/redis.conf

서비스 등록

/usr/lib/systemd/system/redis.service 파일에 아래 내용 생성
(vi /usr/lib/systemd/system/redis.service)

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --daemonize no --supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
WorkingDirectory=/usr/local/bin/

[Install]
WantedBy=multi-user.target

서비스 데몬 로드

systemctl daemon-reload
# 서비스 활성화(재부팅시에 자동 시작)
systemctl enable redis
#서비스 시작
systemctl start redis
#서비스 중지
systemctl stop redis

0개의 댓글