본문 바로가기
DB/REDIS

1. REDIS 설치 및 환경설정

by JiGyeong 2019. 7. 24.

1. 레디스 소개

 

(1) 레디스란?

 

REDIS (REmote Dictionary Server)는 메모리 기반의 -구조 데이터 관리 시스템입니다.

모든 데이터를 메모리에 저장하여 빠른 Read, Write 속도를 보장합니다.

레디스는 크게 5가지< String, Set, Sorted Set, Hash, List >의 데이터 형식을 지원합니다.

 

 

 

 

(2) 데이터가 클라이언트에서부터 디스크로 쓰여지는 과정

 

Step 1: 클라이언트가 레디스 서버로 데이터를 보냅니다. 데이터는 현재 클라이언트 메모리에 있습니다.

Step 2: 레디스 서버가 데이터를 받습니다. 데이터는 레디스 서버 메모리에 있습니다.

Step 3: 레디스 서버가 데이터를 디스크에 쓰는 write() 시스템 콜을 호출합니다. 데이터는 커널 버퍼에 있습니다.

Step 4: 운영체제(OS) fsync() 시스템 콜을 호출해서 버퍼에 있는 데이터를 디스크 제어기(controller)에 씁니다. 데이터는 디스크 캐시(cache)에 있습니다.

Step 5: 디스크 제어기는 물리적으로 디스크에 기록합니다.

 

 

2. 레디스 설치

 

1) 설치 후 tar.gz 파일 압축을 풉니다.

$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz

 

2) 압축을 푼 폴더에서 make, make install을 차례로 실행합니다.

$ make

$ make install

 

 

 

3. 레디스 환경설정

 

(1) redis.conf 파일 수정

 

# redis 서버를 나가도 background 실행되도록 설정

daemonize no -> yes

 

# redis가 변경 커멘드를 받을 때마다, AOF(Append-Only-File)에 커멘드가 추가되도록 설정

appendonly no -> yes

 

 

(2) REDIS AOF(Append-Only-File) 설정

 

옵션

설명

appendonly:

AOF를 사용(yes) 또는 사용 금지(no)를 설정. default : no

appendfilename

AOF 파일 이름.

appendfsync

AOF 파일에 데이터가 쓰여지는 시점을 정하는 옵션. default : everysec

* always: 레디스 명령이 실행될 때 마다 디스크에 씀. 성능이 매우 떨어짐.

* everysec: 데이터를 모아서 1초 마다 디스크에 씀. write() fsync() 시스템 콜 호출의 지연 시간에 따라서 최대 2초 이내의 데이터를 잃어 버릴 수 있지만, 성능과 데이터 보존 양 측면에서 적절.

* no: 디스크에 쓰는 시점을 운영체제(리눅스)에 맡김. 대부분의 리눅스 시스템에서는 30초 마다 디스크에 저장.

no-appendfsync-on-rewrite

appendfsync always everysec로 설정했을 때, 대량 쓰기 동안 fsync() 수행 여부를 정하는 옵션. default : no

* no : 대량 쓰기 동안 설정된 대로 fsync()를 수행.

* yes : 대량 쓰기 동안 레디스 서버에서 fsync()를 수행하지 않고 운영체제에게 맡김. 30초 마다 한 번씩 fsync()가 수행.

auto-aof-rewrite-percentage

해당 옵션의 사용 가능한 값은 0~100. default : 100

AOF 크기가 명세한 퍼센트까지 도달하면, 암묵적으로 BGREWRITEAOF 커맨드를 실행하여, 자동으로 로그 파일을 rewrite.

auto-aof-rewrite-min-size

rewrite AOF의 최소 크기. Default : 67,108,864 바이트

AOF 파일 크기가 이 옵션에서 설정한 값 이상이 되어야 rewrite.

aof-load-truncated

크래쉬가 발생할 경우, AOF가 일부만 남을 수 있는데, 해당 옵션은 에러 시 시작 또는 종료시 레디스가 truncated AOF를 로드할 것인지를 설정.

* yes : 레디스는 잘려진 파일(truncated file)을 로드하고 에러 메시지를 출력.

*no : 레디스는 오류를 남기고 중단, 이 경우 AOF파일을 수정해야 함.

dir

AOF(또는 RDB 파일)의 디렉토리 위치를 명세.

 

이어지는 글

https://javannspring.tistory.com/257

 

2. REDIS 실행 및 명령어

(1) 레디스 서버 실행 # src/redis-server redis.conf (redis.conf 파일을 사용해서 redis-server 실행) (2) 레디스 서버 접속 # redis-cli –p 6379 (기본포트 6379 <- redis.conf 파일에서 변경 가능) 127..

javannspring.tistory.com

https://javannspring.tistory.com/258

 

3. 레디스 Replication (Master-Slave)

(1) 레디스 Replication 설명 * 복제란 레디스의 데이터를 실시간으로 다른 레디스 노드에 복사하는 작업 * 서비스를 제공하던 첫 번째 레디스 노드가 다운되더라도, 두 번째 레디스 노드가 이어서 서비스를 제공..

javannspring.tistory.com

https://javannspring.tistory.com/259

 

4. 레디스 센티널

1) 마스터 다운 감지 2) 마스터 후보 선택 3) 마스터로 승격 4) 동기화 5) 클라이언트에게 알림 6) 클라이언트 : 새 마스터로 접속 (1) 센티널 주요 기능 * 모니터링 Monitoring : 센티널은 레디스 마스터, 복제..

javannspring.tistory.com

 

'DB > REDIS' 카테고리의 다른 글

Redis Cache  (0) 2023.08.08
4. REDIS Sentinel  (0) 2019.07.24
3. REDIS Replication (Master-Slave)  (0) 2019.07.24
2. REDIS 실행 및 명령어  (0) 2019.07.24