redis5 Redis - Replication(복제) Redis 복제(Replication) 기초HA(High Availability)를 위해서는 아래 두가지가 필요하다복제자동 fail over이번 글에서는 그중 Redis의 복제 개념을 먼저 살펴보고, 자동 Failover에 대해서는 Sentinel이나 Cluster에서 다루려고 한다.1. 복제란redis 노드는 크게 두 가지 역할을 가진다.masterreplicaReplica는 Master 노드의 데이터를 복사받아, **읽기 전용(read-only)**역할을 수행하며, 쓰기 커맨드는 기본적으로 Replica에서 불가능하다.(물론 설정을 변경해 Replica에도 쓰기가 가능하게 할 수는 있지만, 권장하지 않는다.)Redis 는 다른 DB 들과 달리 master 노드는 replica 가 될 수 없다.1.1 .. 2025. 3. 16. redis - pub/sub 동작 원리 spring websocket 을 공부하다보니, 기존에 알고 있던 redis pub/sub 에서의 channel 개념과 kafka 의 토픽 개념들이 헷갈리기 시작했다.redis pub/sub 에서 말하는 channel 의 정체는 무엇일까?connection일반적인 웹 애플리케이션 서버들과 클라이언트와의 관계는 http 통신을 통해 비연결적이다.하지만 db, redis 와 같은 서버들과 이를 연결하는 웹 애플리케이션 서버는 tcp 를 통해 연결되어 있다.즉, 일단 접속을 하면 tcp 를 통해 연결이 되어있다.redis pub/subpub/sub일반적으로 pub/sub 은 broker 를 매개로 하여, publisher 가 메시지를 발행하고, subscriber 가 메시지를 수신하는 통신 방법을 말한다.pu.. 2024. 11. 18. 분산환경 동시성 처리 2 - redisson 활용 https://pius712.tistory.com/25 분산환경 동시성 처리 1 - db 사용동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있다. JVM 진영에서는 객체의 상태 변수도 race condition 이 발pius712.tistory.com https://pius712.tistory.com/26 분산환경 동시성 처리 2 - redis SETNX 사용https://pius712.tistory.com/25 분산환경 동시성 처리 1 - db 사용동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있pius712.t.. 2024. 5. 17. 분산환경 동시성 처리 2 - redis SETNX 사용 https://pius712.tistory.com/25 분산환경 동시성 처리 1 - db 사용동시성 이슈란 무엇인가?멀티 스레딩 환경에서는 동시성 이슈로 인해서 공유자원이 경쟁상태(race condition)에 놓이는 상황이 발생할 수 있다. JVM 진영에서는 객체의 상태 변수도 race condition 이 발pius712.tistory.com 위 포스팅에서는 database 기능을 통해서 동시성 처리 예제를 만들어 보았다.이번 포스팅에서는 redis 를 활용하여 동시성 제어를 해보려고한다.이번 포스팅에서는 redis 자체에 대해서는 깊게 다루지 않으려고 한다.선착순과는 다른점참고로, 이전 포스팅과 이번 포스팅의 사례는 선착순 시스템의 경우에는 적절하지 않을 수 있다.왜냐하면, 기본적으로 이전 포스팅에.. 2024. 5. 17. redis lock 1부 (feat. Redlock) 분산 락이란?분산 락은 여러 개의 클라이언트가 특정 리소스에 접근할 때, 한번에 하나의 클라이언트만 접근(mutual exclusive) 할 수 있도록 하는 메커니즘이다.분산락의 조건분산 락은 최소한 아래의 조건을 만족시켜야한다.safety: 하나의 클라이언트만 리소스에 접근할 수 있어야한다. (mutual exclusive)deadlock free: 특정 클라이언트가 락 획득 후 죽는다고 해도, 결국에 다른 클라이언트가 락을 획득 할 수 있어야한다.fault tolerance: 일부 레디스 노드가 죽는다고해도, 대다수가 살아있다면 락 획득을 할 수 있어야한다.redlock 이전 라이브러리들의 문제?레디스 공식문서에 의하면, redlock 이전의 라이브러리들은 문제가 있었다고 한다.그것은 redis re.. 2024. 5. 3. 이전 1 다음