레디스

개요 레디스는 메모리DB 입니다. 메모리DB 이기 때문에 레디스에서 사용하는 메모리 할당량을 확실히 알아야 합니다. 메모리가 부족하게 되면 OOM 에 의해 프로세스가 죽을 수 있기 때문입니다. 그래서 메모리 사용량에 대해 조사하던 도중 SAVE 동작 시 자식프로세스가 생성되어 rdb 파일을 백업하는 데 이 때 메모리를 2배로 사용한다. 라는 글이 있어서 이에 대한 테스트를 진행해 보려고 합니다. 메모리를 2배로 사용한다는 의미는 아래와 같습니다. 레디스 프로세스 (부모) 가 메모리상의 데이터를 가지고 있고, SAVE 시 자식 프로세스가 생성되어 메모리상의 데이터를 전체 복사 후 rdb 파일로 내려쓴다. 참고로 이 포스팅에서의 SAVE 동작은 사용자가 직접하는게 아니라 레디스 엔진에서 save 옵션값으로 ..
상황 아래와 같은 구조에서 레디스 Failover 테스트 중에 failover-abort-no-good-slave 오류가 발생했습니다. 원인 레디스 접속을 위해서는 암호를 입력하도록 설정된 상태입니다. 그러나 센티넬에서는 레디스 인증관련 암호설정이 없었습니다. 레디스 conf 파일 requirepass "P@ssword" masterauth "P@ssword" 센티넬 conf 파일 # sentinel auth-pass TEST P@ssword 시나리오 - 해결방법 센티넬 conf 파일에 auth-pass 설정이 안됨 센티넬에서 레디스 TEST 인스턴스의 암호가 없기 때문에 접속하여 replication 정보를 얻어올 수 없었고, failover-abort-no-good-slave 로그가 기록되었습니다. ..
상황 2.8.4 버전에서 2.8.24 버전으로 업그레이드 후 발생하였습니다. 구조는 다음과 같습니다. 테스트 환경에서 재연에 필요한 인스턴스만 구성하였습니다. 업그레이드 작업 방법 단계 작업내용 1 Sentinel 인스턴스 다운 2 Redis Slave 인스턴스 다운 3 Redis Master 인스턴스 다운 4 redis / sentinel 바이너리 2.8.24 버전으로 교체 5 Redis Master 인스턴스 구동 6 Redis Slave 인스턴스 구동 7 Sentinel 인스턴스 구동 8 Sentinel 페일오버 테스트 진행 (오류 발생) 원인 Redis conf 파일에는 rename-command 의 옵션이 있었습니다. 이 옵션이 있는 경우, failover 시 아래와 같은 오류가 발생하는 것으로 ..
꽁담
'레디스' 태그의 글 목록