Closed JuyeoungJun closed 3 years ago
In GitLab by @gm2202981 on May 24, 2021, 11:55
changed the description
In GitLab by @gm2202981 on May 24, 2021, 11:56
■ Persistence
Redis는 데이터를 disk에 저장할 수 있습니다. 따라서 Redis는 서버가 shutdown된 후에 restart 하더라도 disk에 저장해놓은 데이터를 다시 읽어서 데이터가 유실되지 않습니다. redis의 데이터를 disk에 저장하는 방식은 snapshot, AOF 방식이 있습니다.
Snapshot : 스냅샷은 RDB에서도 사용하고 있는 어떤 특정 시점의 데이터를 DISK에 옮겨담는 방식을 뜻합니다. Blocking 방식의 SAVE와 Non-blocking 방식의 BGSAVE 방식이 있습니다.
AOF : Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태입니다. 서버가 재시작할 시 write/update를 순차적으로 재실행, 데이터를 복구합니다.
레디스 공식문서에서의 권장사항은 RDBMS의 rollback 시스템같이 두 방식을 혼용해서 사용하는 것입니다. 주기적으로 snapshot으로 벡업하고 다음 snapshot까지의 저장을 AOF 방식으로 수행하는 것이죠.
출처: https://engkimbs.tistory.com/869 [새로비]
In GitLab by @gm2202983 on May 24, 2021, 13:04
신호 유실과 관련해 stream 방식을 사용하는게 나을 것 같습니다.
만약 종료됐는지를 확인하는 polling 방식을 추가한다면 pub/sub 방식으로 사용 가능합니다
In GitLab by @gm2202983 on May 24, 2021, 13:11
전반적인 레디스의 특징입니다. 유익한 정보 많습니당 https://juneyr.dev/2019-03-29/redis-basics
In GitLab by @gm2202983 on May 24, 2021, 14:33
Cron job 를 사용해 Xs 에 1번씩 batch process 로 로그 데이터를 select 하여 socket.io 실시간 이벤트로 broadcasting 하고 client는 수신받은 데이터로 유실이 발생한 알림에 대해 리스트를 fetch 하는 것으로 이벤트 누락에 대한 데이터 미변경을 보완하면 될 것 같습니다 .
In GitLab by @gm2202981 on May 24, 2021, 16:34
위의 방법은 유실을 방지할 순 있지만 오버헤드가 너무 큼
In GitLab by @gm2202981 on May 25, 2021, 16:26
unassigned @gm2202981
In GitLab by @gm2202981 on May 20, 2021, 10:35
개요
모니터링 서버가 다운되거나 이상이 발생하는 경우에 대한 대처 방안 모색
Redis Pub/Sub vs Redis Stream 비교
참고자료