본문 바로가기

Back-End

[Linux Centos] offline 환경에서 redis 설치하기

728x90

상황 :  npm, yarn 은 가능하여 yarn add redis로 client는 설치.

//Redistest.js
const redis = require('redis')

const client = redis.createClient();
client.on('error', err=>console.log(err));
client.connect();
node Redistest.js

connect ECONNREFUSED 127.0.0.1:6379 에러발생
=> redis-server 가 해당 포트로 실행되고 있지 않아서임.

redis server 를 가동해줘야 하는데, npm package에 있는 redis-server는 무슨 이유에서인지 잘되지 않음..

CentOs package로 설치 진행.

*가능한 방법

1) rpm 파일을 들여와서 rpm -i [패키지명]으로 설치

2) tar.gz 파일을 들여와서 tar zxvh [패키지명] 으로 설치

3) yum install [패키지명] -> 제일 간단.

yum install redis


해줬으나

no Package redis available
=> epel-release를 설치해줘야 함
*epel-release는 Yum의 확장된 저장소라고 합니다.


yum install epel-release 
no Package epel-release available

 

이건 또 무슨 일인가...

 

구글링 해보니 오프라인이라 그렇다고.. 한다.. 

 

어쩔 수 없이 epel-release는 물리적 파일을 들여오는 수밖에..


https://docs.fedoraproject.org/en-US/epel/


여기에서 
epel-release-latest-7 설치한 다음 

 

rpm -Uvh epel-release-latest-8.noarch.rpm

 으로 설치

이후 yum install redis 가 가능

 

*redis서버를 시작

systemctl start redis
systemctl enable redis

 

redis-cli ping
=> pong :성공!!!!

 

간단하게 set, get 테스트하니 잘된다ㅠ

 

MemoryDB 특성상 서버가 내려가면 다 잃을 수 있기 때문에 Persistence 설정을 해줘야 한다.


AOF(Append Only File)
redis-cli에 bgrewriteaof라는 명령어를 수행 시 수행 시점으로 부터 입력, 수정, 삭제되는 데이터를 모두 저장합니다.
conf 파일에 다음과 같은 문구를 추가해 줍니다.
appendonly yes
https://velog.io/@wodyd202/Redis-Persistence

 

Redis Persistence

다들 아시다시피 Redis는 휘발성인 메인 메모리를 주로 사용하는 NoSQL 인데요.휘발성이다보니 리로드 되거나 다운되면 그 안에 있던 모든 데이터가 날라가는 특징을 갖고있습니다.“저는 Redis에

velog.io

*appendonly.aof의 경로는 /var/lib/redis 에 있음.

 

 

완전히 offline 환경이라면

 

yum 명령어도 되지 않는다..

 

rpm 뿐인데, 인터넷 연결이 되는 곳에서 redis 패키지 및 이에 필요한 dependency 패키지들을 같이 설치해줘야 한다.

repoquery -R --resolve --recursive <name> | xargs -r yumdownloader

<name> 에 redis 를 넣으면 dependency rpm 들이 쭉 다운로드 될텐데 이 파일들을 오프라인 환경으로 옮긴 뒤

 

한 군데에 모아놓고 (필자는 yums 라는 디렉토리) 

cd yums..

rpm -Uvh *.rpm 을 하면 된다. 아니 될지도 모른다.

 

나는 안됐기 때문에 

yum localinstall *rpm

을 하니 됐다!