Redis APPENDONLY Parameter

<< RENAME-COMMAND APPENDFILENAME >>

Redis appendonly parameter

레디스 설정 파일인 redis.conf 에 있는 appendonly 파라미터에 대한 설명입니다.  

설명

데이터를 Append Only File에 쓸지 여부를 정하는 파라미터이다. yes/no로 설정할 수 있다. 디폴트는 no이다.
레디스는 주 기억 장소가 메인 메모리(RAM)이다.   그러므로 서버 이상 시(레디스 서버 비정상 종료, OS 이상 상황 발생, 서버 전원 끊김 등) 저장한 모든 데이터가 날아가게 된다.   이를 방지하기 위한 기능 중 하나가 Appendonly이다.   Appendonly를 yes로 설정하면 레디스 서버에 데이터가 입력/수정/삭제될 때 마다 디스크에 쓴다.   그래서 서버 이상 시에도 데이터를 보존할 수 있다.   디스크에 써진 데이터는 레디스 서버 시작 시 읽켜서 메모리에 저장된다.
저장 파일명은 appendfilename 파라미터에서 정해진다.

AppendOnly, AppendOnlyFile을 줄여서 AOF라고 한다.
디스크에 쓰는 시점은 appendfsync 파라미터로 정해진다.   appendfsync는 세 가지 옵션(always, everysec, no)이 있다.
  • always는 레디스 명령이 실행될 때 마다 디스크에 쓴다. 그러므로 성능이 매우 떨어진다.
  • everysec는 데이터를 모아서 1초 마다 디스크에 쓴다. 따라서 1초 이내의 데이터를 잃어 버릴 수 있지만, 성능과 데이터 보존 양면에서 적절한 값이다.   기본값이다.
  • no는 디스크에 쓰는 시점을 OS(리눅스)에 맡긴다.   최대 30초 후에 디스크에 저장된다.

레디스 서버 시작 시 읽어 들이는 파일 순서

appendonly 파일과 dump.rdb 파일이 있을 때 appendonly yes이면 레디스 서버 시작 시 appendonly 파일을 읽어 들인다.   appendonly yes 이지만 appendonly 파일은 없고 dump.rdb 파일이 있어도 dump.rdb 를 읽지 않는다.   appendonly no일때만 dump.rdb 파일을 읽어 들인다.

AppendOnly File 저장 형태

AOF는 명령 실행 순서대로 텍스트로 쓰여진다. 편집 가능하다.
'*'는 명령 시작을 나타낸다. 숫자는 명령과 인수의 개수이다.   Multi/exec로 실행했을 경우 포함된 명령은 하나의 '*'에 기록된다.
'$'는 명령이나 인수, 데이터의 바이트 수이다. 한글은 UTF8로 했을 경우 한 글자에 3바이트이다.
*3
$3
SET
$8
user_aaa
$7
Charlie
*2
$4
INCR
$5
del-a

권장

yes

사용 방법

appendonly yes
appendonly no




<< RENAME-COMMAND APPENDONLY APPENDFILENAME >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 返事がかかってなれば、メールでお知らせします。