[Redis] 레디스의 읽기/쓰기 전략
·
Redis/Redis 읽기쓰기 전략
[필요성]레디스를 사용하기 위해서는 왜 이런 전략이 필요할까?데이터의 일관성이 필요하기 때문이다.아래처럼 어떠한 데이터를 가져올 때 빈번하게 가져와야 하는 데이터는 캐시 메모리에 저장하여 더 빠른 처리가 가능하다.만약 200을 가진 주소의 값을 300으로 바꿔야 한다면 어디부터 수정하고 어떤 방식으로 수정해야 할까?메모리만 200을 300으로 바꾼다면 일관성이 깨지기 때문에 두 값을 모두 변경해야 한다는 사실은 자연스럽게 들 것이다. 이때 어떤 방법으로 데이터를 읽고 써야 하는지 그 효율을 위한 전략에 대해서 알아보고자 한다.[캐시 히트/캐시 미스]우선 전략을 세우기 전에 이러한 개념을 알고 가야 한다.캐시 히트란 캐시 스토어(redis)에 데이터가 있을 경우 바로 가져오며 매우 빠른 속도를 보인다.캐시..
Redis Pub/Sub을 활용한 채팅 구현의 여정 - 개념편
·
Redis/Redis 채팅
수많은 우여곡절 끝에 배포된 서버에 채팅 기능을 적용하게 되었다!간단히 말하자면 원래 담당했던 백엔드 팀원이 던져놓은 빅 똥을 치우게 되었다.내 프로젝트의 스택은 아래와 같다.Java 17 / Spring 3.x / JPA / Redis / Spring Security / JWT / OAuth / Websocket / MySQL / Firebase그리고 처음 팀원이 던져놨던 채팅 구현을 위한 기능은 Kafka + Socket.io 였다. 내가 알기로 Kafka는 MSA구조에서 그룹으로 묶어 메세지를 전달하는 메세지 큐 방식에 적합한 절대 가볍지 않은 스펙의 프레임워크였으며, Socket.io 또한 Spring으로 만든 프로젝트가 아닌 별도로 서버가 생성되는 과정을 요구하는 방식이였으나 팀원을 믿고 기다렸..