Redis 동시성 이슈 개선하기
2022. 5. 14. 13:32
Spring
Redis에서 조회수 증가 동시성 이슈 조회수를 Redis에 캐싱하고 나중에 RDB로 write back해야하는 일이 있었다. Redis에서 해야하는 일은 게시물이 조회되면 → 해당 게시물의 id를 key로하여 조회수를 저장하는 일이다. 이슈 사항 먼저 조회수에 대한 상세 로직은 아래와 같다. Transaction1(T1)이 게시글 1번의 조회수를 조회한다. T1은 조회수를 1 증가한다. 조회수는 최종적으로 1증가 되어 Redis에 저장된다. 하지만 T2가 동시에 요청을 하면? 아래와 그림과 같은 이슈가 발생한다. T1과 T2가 조회수를 조회한 후 T1이 변경하고 T2가 변경했을 때 각자 조회한 조회수가 동일했기 때문에 동기화가 안되는 현상이다. 즉, 최종적으로는 조회수가 12가 되어야 하는 것이다. 이..