1. 환경 설정 파일
레디스의 환경 설정하는 방법은 다음과 같다.
레디스 프로세스가 시작할 때 환경 설정 파일을 읽도록 한다. ⇒
redis.conf
파일레디스의 명령을 사용하여 실시간으로 설정값을 반영한다. ⇒
config set
명령
기본으로 제공하는 redis.conf
설정 파일은 크게 다음으로 나뉘어진다.
기본 설정
영구 저장소 설정
복제 설정
보안 설정
제한 설정
루아 설정
고급 설정
1.1. 기본 설정
네트워크, 로그 및 프로세스와 관련된 설정값을 지정한다.
1.2. 스냅샷 설정
레디스는 데이터를 영구 저장하기 위해 dump.rdb
파일에 메모리 내용을 기록한다.
1.3. AOF 설정
데이터의 유실을 최소화하고 싶다면 AOF 설정을 사용하면 된다. aof 파일은 쓰기 명령어가 실행될 때마다 aof 파일에 명령과 데이터를 기록하여 장애에서 데이터를 복원하는 데 사용한다.
1.4. 복제 설정
1.5. 보안 설정
1.6. 최댓값 제한 설정
2. 레디스 스냅샷
레디스는 메모리에 저장된 모든 데이터를 디스크로 저장하며 이것을 스냅샷
이라고 부른다.스냅샷의 결과로 dump.rdb
파일이 생성되는데 이 파일을 사용하여 해당 시점의 데이터로 복원할 수 있다.스냅샷이 시작되면 fork
함수를 호출하여 자식 프로세스를 생성하고, 생성된 자식 프로세스가 메모리의 내용을 디스크로 저장한다.
스냅샷이 동작하는 동안에도 레디스는 정상적으로 데이터 처리 명령을 수행하지만, 클라이언트의 응답시간이 증가할 수도 있다. 만약 fork 함수가 호출되어 자식 프로세스가 종료되기 전에 모든 페이지가 변경된다면 레디스는 메모리를 최대 2배만큼 사용하게 된다.
즉, 스냅샷을 사용할 때는 자신의 서비스가 쓰기 위주의 서비스인지를 먼저 확인하여 메모리 사용 정책
을 정의해야 한다.
3. AOF(Append Only File)
AOF(Append Only File)
는 레디스의 데이터 영속화의 기능으로써, 레디스가 수신하는 모든 쓰기 명령을 aof 파일에 기록하여 데이터를 보관한다.
레디스 설정에 appendonly
설정을 yes
로 하고 레디스 인스턴스를 실행하여 aof 파일의 구조를 살펴보자.
먼저 레디스 설정 파일을 작성한다.
그 후 레디스 인스턴스를 실행한다.
새로운 터미널 창을 열어서, 실행한 인스턴스에 접속한다. 그리고 새로운 키-값을 지정한다.
레디스 인스턴스를 실행한 위치에서 appendonly.aof
파일을 확인한다.
레디스 명령어를 레디스 프로토콜 형식으로 저장한다.
레디스가 재시작할 때 다시 동일한 명령어를 실행하여 데이터의 정합성을 유지한다.
모든 명령어를 다시 실행하기 때문에 스냅샷에 비하여 데이터 로드 시간이 오래 걸린다.
4. 마치며
레디스를 사용할 때는 메모리 관한 설정에 유의해야 한다. 메모리 설정은 운영체제와 밀접한 관련이 있으므로, 메모리와 디스크에 대한 운영체제 설정을 최적화해야 한다.
Last updated