일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 미션
- JUnit5
- 서블릿
- yml
- 트랜잭션
- 프리코스
- 스프링 부트
- 스프링부트
- Spring Batch
- AOP
- 우테코
- 코드리뷰
- mock
- 레벨2
- Docker
- 우아한세미나
- HTTP
- 백준
- MSA
- AWS
- JPA
- 의존성
- Level2
- 우아한테크코스
- 세션
- 자바
- Paging
- CircuitBreaker
- REDIS
- 프로그래머스
- Today
- Total
목록REDIS (3)
늘
https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.htmlredis를 사용한 분산락을 구현할때 RedLock의 한계는 이미 잘 알려진 문제입니다. 간략히 짚고 넘어가자면 Java기반 서버에서 stw가 발생할때 또는 클락 드리프트 이슈가 발생할때 락 일관성이 깨질 수 있다는 것입니다.이를 확실하게 해결하기 위해서는 주피터를 사용하라고 되어있습니다. 그렇다면 redis를 사용한 분산락은 어떻게 구현할 수 있을까요?redlock알고리즘을 사용하는 이유가 클러스터 구조에서 일관성있는 락을 유지하기 위해 존재하는데, redlock을 사용하지 않는다면 어떤 식으로 redis의 java 클라이언트인 redisson이 락을 처리하는지 확인해보겠..
저번 게시글에서 레디스를 도입하기로 결정을 했고 처음으로 적용해보았다. 그런데 테스트를 하는 도중에 테스트 격리가 실패를 했다. 레디스에서 테스트 격리를 위해 일주일간 고군분투한 경험을 기록하려고 작성한다. 테스트가 돌아가지 않는 코드는 믿을 수가 없다! 필자의 팀은 테스트 코드가 돌아가지 않는 코드를 ec2에 올리지 않는다. 처음 시도하는 것들이기에 테스트 코드가 보장되지 않는다면 신뢰할 수가 없기 때문이다. 따라서 redis를 적용하고 잘 동작하는지 테스트가 필요했다. 레디스를 적용 후, 로컬에서는 정상 동작했다. 하지만 ec2의 젠킨스에서 빌드가 할 때 오류가 발생하는 문제가 발생했고 결국 레디스를 제거하였다...🤦♂️ 레디스 적용 후, 테스트하기 레디스를 적용한 후 테스트를 진행했다. 그런데 테..
Redis(Remote Dictionary Server)란? “key-value” 구조로 데이터를 저장하고 관리하기 위한 비 관계형 데이터베이스로 모든 데이터를 메모리에서 처리하는 메모리 기반 DB이다. 메모리를 통해 사용하기 때문에 일반적인 DB보다 빠른 성능을 보여준다. 레디스는 싱글 스레드로 동작한다. 캐시 매번 디비에 접근해서 디스크를 일고 쓰는 것은 비용이 크다. 따라서 데이터를 메모리에 두어 디스크에 접근을 최소화하는 방법이다. 어떤 정보를 캐시할까 잘 안 바뀌는데, 자주 읽어오는 경우 ex) 로그인 정보 key마다 태그를 달아서 어떤 데이터가 많이 생성되는지 확인한다. 캐시 vs 버퍼 버퍼는 주로 차기를 기다려서 꽉 차면 보내주고, cache는 미리 계산하고 가져온다. 버퍼는 쓰기를 위해서 ..