간단하게 레디스의 설정(파일) 에 대해 알아보자.

레디스는 기본적으로 두가지의 방식을 제공한다.
하나는 RDB 또 다른 한개는 AOF 방식이다.
RDB파일 방식은 특정한 간격마다 메모리에 있는 레디스 전체를 디스크에 쓴다. 백업을 받을 시 용이한 방식이다.
AOF 는 Append Only File 약자로 명령이 실행 될때마다 기록되는 방식이다. 데이터 손실의 거의 없으나 성능에 영향을 미친다.

  • RDB
    특정 시점에 데이터를 바이너리 파일로 저정한다. AOF 파일보다 사이즈가 작아 로딩속다가 보다 빠르다.
    시점은 지정하는 파일은 redis.conf의 save라는 파라미터 이다.
    save 조건은 여러 개를 지정 할 수 있고 어느 한 것이라도 만족한다면 실행된다. 만약 저장하지 않으려면 save를 제거 하거나 주석처리하면 된다.
    명령으로도 RDB 파일을 생성할 수 있다.

RDB 관련 설정

stop-writes-on-bgsave-error : yes or no, default yes
이값이 yes일때 레디스는 RDB 파일을 디스크에 저장하다 실패하면 모든 쓰기 요청을 거부한다. 쓰기에 문제가 발생했으니 빨리 조치 하라는 것이다. default는 yes이다. 만약 no 로 설정 했다면 저장에 실패 하더라도 모든 요청을 정상적으로 처리한다.

rdbcompression : yes or no, default yes
RDB 파일을 쓸때 압축 여부를 정한다. 압축률은 그다지 높지 않다고 한다.

dbfilename dump.rdb
RDB 파일명을 지정하나 Path는 지정할 수 없다. Path 는 working directory 에 따른다.

  • AOF
    AOF 파일은 default로 appendonly.aof 파일에 기록 된다. 입력/수정/삭제 명령이 실행 될 때 마다 기록되며 조회는 기록되지 않는다.
    AOF는 계속 추가 기록이 된다. AOF는 계속 추가 되면 파일 사이즈가 계속 커지면 OS파일 사이즈 제한에 걸러서 기록이 중단 혹은 레디스 서버 시작이 로드 시간이 많이 걸린다. 예를들어 set명령으로 같은 key 값으로 5번 수행했다면 5번 모두 남아 있다. 이걸 해결 하고자 rewrite 설정이 있다. 만약 rewrite 를 수행하면 이전 기록은 모두 사라지고 최종 데이터만 기록된다.

AOF 관련 설정

appendonly : yes or no
AOF 기능을 사용하거나 사용하지 않는다. yes일때만 AOF파일을 읽는다.

appendfilename
AOF파일을 지정한다. Path는 RDB와 같다. 지정할 수 없고 기본을 따른다.

appendfsync
세가지의 방법이 있다.
always : 명령을 실행 할때마다 기록된다. 데이터가 손실 되지는 않으나 성능이 떨어진다.
everysec : 1초마다 AOF에 기록된다. 그 사이에 데이터가 유실 될수 있으나 always보다는 성능이 좋고 데이터도 가능한 많이 보존할 수 있으며 일반적으로 권장하는 방법이다.
no : OS 가 알아서 하는 방식이긴 하나 데이터 유실이 큽니다.

AOF rewrite
auto-aof-rewrite-percentage 100 : AOF 파일 사이즈가 100% 이상 커지면 rewirte 한다. 처음에는 레디스 서버가 시작할 시점의 AOF파일 사이즈 기준으로 한다. Rewrite 하면 rewirte 후 파일 사이즈 기준으로 계산한다.

auto-aof-rewrite-min-size 64mb
AOF 파일 사이즈가 64MB이하면 rewirte 하지 않는다. 파일이 작을때 rewirte가 자주 발생하는 것을 막는다.
만약 0으로 설정 했다며 rewirte를 하지 않는다.

어느것이 나을까?
AOF 는 기본, RDB는 옵션으로 한다.
AOF설정은 everysec AOF rewirte 는 사용한다.
AOF를 사용해도 성능에 거의 영향을 미치지 않는다고 한다. (위엔 성능이 떨어 진다 했는데…)
Master 노드 이고 Auto-restart 기능을 사용할 때는 AOF를 사용하는 것이 안전하다.
Msster 노드가 자동 재시작했을때 만약 AOF를 사용하지 않아서 데이터가 없다면 slave노드들의 데이터도 날리게 된다.

출처 : http://www.redisgate.com/redis/configuration/persistence.php
이 사이트에 좋은 내용이 많은거 같다.