spring data redis 를 사용하여 운영 중 장애를 맞고 알게된, 미리 알았으면 좋았을 것들에 대해 기록 Topology 설정의 중요성 Elasticache 를 cluster mode 로 replica node 를 생성하고 multi az 설정을 하여 사용 하고 있었다. 이렇게 설정해 놓으면 안전하겠지 생각했지만 빠진게 있었다. 바로 topology 설정이다. 얼마 전 장애가 났다. Master node 에 문제가 생겼고, fail over 처리를 하여 replica 중 하나가 master 로 선출 되어 교체 되었고, 새로운 replica 노드가 생성되었다. 이 모든게 수분 내에 이루어졌고 문제가 해결 됐다고 생각했지만 우리 서버는 그 후로도 몇분간 장애를 내뱉었다. topology 설정을 안했..
Redis Transaction 문서 번역 Redis Transactions는 MULTI, EXEC, DISCARD, WATCH를 사용하여 명령어 그룹을 한번에 실행해 주며, 다음 두가지 사항을 보장한다. 트랜잭션 환경 에서 모든 명령어들은 serialized 되어 순서대로 실행된다. 다른 client가 실행한 요청이 중간에 실행 되는 일은 없다. 이것은 명령어가 single isolated 하게 동작하도록 보장한다. EXEC 명령어는 트랜잭션 안에서 다른 명령어를 실행시킨다. 그래서 client가 EXEC을 실행 시키지 않은 채 레디스와 연결이 끊겼다면 다른 명령어들은 실행 되지 않는다. 대신, EXEC 명려어가 실행 되면 모든 명령어들은 실행 된다. append-only file(persistence..
회사에서 Redis Pub/Sub을 사용 검토하며 알아본 내용을 간단하게 정리 Pub/Sub 방식 Publisher와 Subscriber는 서로 디커플링 되어 있어 누가 메시지를 발행 하는 지, 누가 메시지를 구독 하는 지 알지 못한다. 이런 특징은 Redis Pub/Sub이 큰 규모로 확장될 수 있도록 하고, 다양한 네트워크 토폴로지를 가질 수 있게 한다. Publisher가 channel에 메시지를 발행 하면 그 채널을 구독 하고 있는 Subscriber는 Redis가 push 해주는 메시지를 전달 받게 된다. Redis는 채널을 구독 하고 있는 모든 Subscriber들에게 메시지를 push 해준다. 패턴 일치 구독 glob 스타일 패턴으로 채널을 구독 할 수 있다. 예를 들어 # 구독 PSUBSC..
- Total
- Today
- Yesterday