본문 바로가기

Redis7

Pub&Sub Pub&Sub 패턴 메시징 모델중의 하나로 발행과 구독 으로 개념화한 형태 발행자와 구독자는 서로에 대한 정보 없이 특정 주제(토픽, 채널)를 매개로 송수신 Pub&Sub ( 발생과 구독 ) 메시징 미들웨어의 장점 비동기 : 통신의 비동기 처리 낮은 결합도 : 송신자와 수신자가 직접 의존하지 않고 공통 미들웨어에 의존 탄력성 : 구성원들간의 느슨한 연결로 인해 일부 장애가 생겨도 영향을 최소화 함 메시징 미들웨어 제품 종류 : Kafka, RabbitMQ, ActiveMQ ... Redis&Pub 의 특징 메시지가 큐에 저장되지 않음 Kafka 컨슈머 그룹 같은 분산 처리 개념이 없음 메시지 발행시 push 방식으로 subscriber에게 전송 메시지 구독이 늘어날 수록 성능 저하 발생& 구독의 특징 R.. 2023. 12. 11.
Redis 리더보드 만들기 리더보드의 동작 API 빠른 업데이트 / 빠른 조회가 필요 점수 생성 / 업데이트 -> ex : setScore(userId, score) 상위 랭크 조회 (범위 기반 조회) -> ex : getRange(1~10) 특정 대상 순위 조회 (값 기반 조회) -> ex : getRank(userId) RDB를 사용했을 경우의 성능 문제 UserId Score UserA 1000 UserB 900 UserC 950 ... ... 업데이트 측면 한 row만 접근하여 update 하므로 빠름 ex : update ranking set score = 990 where userId = 'UserA'; 랭킹 범위나 특정 대상의 순위 조회 랭킹 범위나 특정 대상의 순위를 조회 할 경우 db에 순위 컬럼이 없으며, 만약 .. 2023. 12. 11.
서비스 속도를 높이는 캐시 레이어 캐싱(Caching) Cache : 성능 향상을 위해 값을 복사해놓은 임시 기억 장치 Cache에 복사본을 저장해 놓고 읽음으로서 속도가 느린 장치로의 접근 횟수를 줄임 Cache의 데이터는 원본이 아니며 언제든 사라질 수 있음 캐시 적중 (Cache Hit) : 캐시에 접근해 데이터를 발견함 캐시 미스 (Cache Miss) : 캐시에 접근했으나 데이터를 발견 못함 캐시 삭제 정책 (Eviction Policy) : 캐시의 데이터 공간 확보를 위해 저장된 데이터 삭제 캐시 전략 : 환경에 따라 캐시 운영 방식을 선택할 수 있음 ( Cache-Aside, Write-Through...) 캐시 캐싱 전략 Cache-Aside(Lazy Loading) 항상 캐시를 먼저 체크하고, 없으면 원본(ex:db) 에.. 2023. 12. 11.
분산 환경에서 세션 스토어 만들기 세션 ( Session ) 세션은 사용자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 브라우저를 종료하여 연결을 끊을 때 까지의 일련의 과정을 의미합니다. 세션을 통해 웹 서버는 각각의 사용자 정보를 일정 시간 동안 유지할 수 있습니다. 주요 특징 네트워크 상에서 두 개 이상의 통신 장치간에 유지되는 상호 연결을 의미 연결된 일정 시간 동안 유지되는 정보를 나타냄 적용 대상에 따라 다른 의미를 가짐 사용자 식별 : 웹은 기본적적으로 상태가 없는 (stateless) 프로토콜 입니다. 즉, 두 개의 페이지 요청 사이에 사용자 정보가 저장되지 않습니다. 세션을 사용하면 사용자마다 고유한 세션ID를 부여하고 사용자를 식별 및 그에 따른 정보를 저장할 수 있습니다. 데이터 저장 : 사용자의 정보, 로그인 상.. 2023. 12. 11.