본문 바로가기

레디스3

분산환경 동시성 처리 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.