본문 바로가기

db12

[간단 장애 회고] Redis + @Transactional (트랜잭션에서 Redis Get은 항상 null을 리턴한다. 트랜잭션 없는 상위 메서드에서 트랜잭션 있는 하위 메서드 호출은 에러다.) 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 사건의 개요 Spring Boot에서 @Transactional 어노테이션을 사용하여 Redis에 대해 트랜잭션을 사용했습니다. 하지만 문제가 발생했습니다. 하나의 트랜잭션에서 Redis Get와 Redis Set을 사용할 때 Redis Get가 조회되지 않고 항상 null을 발생시켰습니다. +a 배경지식 : Spring Data Redis + @Transactional Spring Boot에서 Redis 저장소를 사용합니다. 연결하기 위해서는 spring-boot-starter-data-redis 의존성을 사용합니다. 해당 의존성은 Redis Client인 lettuce 라이브러리를 사용합니다. JDBC나 JPA에서 사용하는 @Transactiona.. 2022. 12. 18.
RDB 동시성 문제를 해결하는 RDB Lock, Redis 활용방법과 의사결정 이 글은 최상용님의 '재고시스템으로 알아보는 동시성 이슈 해결방법' 인프런 강의 토대로 개인 생각을 덧붙여 작성되었습니다. (공유 허락 o) 원본 저장소는 이곳과 실습한 저장소는 이곳에서 확인하실 수 있습니다. 🙇‍♂️ 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 동시성 문제(이슈)란 여러 스레드/프로세스/서버가 동시에 같은(공유) 데이터를 변경하면서 발생하는 문제라고 볼 수 있습니다. 예를 들어 하나의 자바 프로세스가 있습니다. 여러 스레드가 동시에 하나의 필드를 수정할 때 동시성 문제가 발생할 수 있습니다. 또 다른 예로 선착순 100명에게 전달해주는 티켓이 있습니다. 이를 구현하는 Spring 서버 여러 대가 존재합니다. 100명 티켓 데이터가 DB에 저장되어 있을 때, 여러 서버가 동시에.. 2022. 12. 14.
레디스를 5가지 방법으로 설치/구축하기 : Terraform + AWS ElastiCache 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 개발/테스트 목적의 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다. (1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform) 운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다. 글 목록 [Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers [Redis] 레디스를 5가지 방법으로 설치/구축하기 : .. 2022. 12. 10.
레디스를 5가지 방법으로 설치/구축하기 : AWS ElastiCache 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 개발/테스트 목적의 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다. (1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform) 운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다. 글 목록 [Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers 현재글 : [Redis] 레디스를 5가지 방법으로 설치/구.. 2022. 12. 9.
레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 개발/테스트 목적의 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다. (1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform) 운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다. 글 목록 [Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose 현재글 : [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers [Redis] 레디스를 5가지 방법으로 설치/구.. 2022. 12. 9.