Remote DIctionary Server 의 약자이다.원격 서버에 존재하고 다수의 서버에서 공통적으로 사용할 수 있는 인메모리 데이터 저장소이다.Key - Value 형태로 데이터를 저장하고, 해시맵과 같이 상수 시간의 복잡도로 데이터 접근이 가능하다.다수의 서버
여기서 슬레이브 하나만 빠지면 위와 같은 구조이다.Docker Compose 를 사용해 Redis 마스터- 슬레이브 복제 구성을 설정하는 예시 설정 (위)왜 프로젝트에서 Master & Slave 구조를 채택했는가? \[NHN FORWARD 2021] Redis
캐싱목적임시 데이터 ( 임시 비밀번호, 로그인 세션 ) 의 빠른 처리와 접근을 위함이다이점데이터 처리 속도의 향상서버의 부하 감소레이트 리미팅목적서버로의 과도한 요청을 방지하기 위해 특정 API 의 요청 횟수를 제한한다.이점서비스의 안정성 유지자원의 효율적인 활용메시지
데이터 저장 방식모든 데이터를 메모리 RAM 에 저장한다.백업과 스냅샷을 위해 디스크 일부를 사용하긴함.하지만, 실제로 Redis 서버가 활용하는 데이터는 모두 메모리에 저장됨.휘발성 데이터 처리인메모리 DB 특성상 주로 휘발성 데이터를 저장RDB ( Redis Dat
개요 메모리 내에서 스토리지로써 빠른 속도를 제공 서비스에 발생하는 지연이나 장애에 대해 데이터 손실을 방지하는 캐시 서버 운영을 제공 정의특정 시간에 전체 데이터베이스 스냅샷을 생성하는 기술장점장애가 발생하는 경우 특정 시점의 스냅샷으로 빠른 데이터 복구가 가능
문자열을 더블리 링크드 리스트 형태 로 저장하는 데이터 타입이다.각 노드가 이전 노드와 다음 노드를 가리키는 포인터를 갖는 더블리 링크드 리스트로 구현이 되어 있다.리스트 타입의 경우 데이터를 양 끝에서 추가하거나 삭제하는 연산에 최적화되어 있다.큐나 스택과 같은 자료
좌표를 저장하고 검색할 수 있는 데이터 타입거리 계산, 범위 탐색 등의 기능을 지원서울에 있는 지하철 역들의 좌표를 알고 있는 경우, GEOADD 로 강남역과 홍대역의 좌표를 저장가능GEODIST 명령어로 두 역의 거리를 구할 수 있음.출력 단위를 조정할 수 있다.네이
별도의 데이터 타입이 아님.스트링 타입의 바이너리 오퍼레이션을 쉽게 사용할 수 있게 만들어진 인터페이스최대 2^32 → 42억개의 바이너리 데이터를 표현할 수 있다.적은 메모리를 사용해 바이너리 상태값을 저장할 때 활용된다.로그인 여부 저장2023년 1월 1일에 로그인
정의집합의 카디널리티(고유한 요소의 수) 를 추정할 수 있는 확률형 자료구조특징결과값에 일정 부분 오차가 발생가능함.카디널리티 계산시 추정 이라는 표현이 사용된다고함.원리작동멤버의 값을 해싱 → bucket 단위로 분류한다.해시 값에 맞게 표시동일한 아이템이 추가되면
정의병렬 요청이 공유 자원에 접근하는 경우 급격한 과부하를 발생시키는 문제언제 발생하나대규모 트래픽을 다루는 서비스에서 주로 발생한다.초당 REQUEST 가 많을 때 더욱 캐시를 세밀히 조정해야한다.상황연산에 1초가 걸리는 통계 데이터가 있고, 이를 REDIS 에 미리
서비스 내 모든 사용자를 대상으로 상위권 목록만을 표시전체 게임 사용자 중 상위 10명의 순위를 보여주는 리더보드사용자마다 다른 데이터를 보여준다.사용자의 스코어를 기준으로 특정 그룹 내 순위를 표시한다.특정 지역 사용자들끼리만 순위를 매기거나, 사용자 주변의 순위를
ORDER BY RAND() 함수 사용조건에 맞는 모든 행(결국 모든 데이터) 를 읽고, 임시 테이블에 넣너서 정렬한다.데이터가 많은 경우 성능이 저하된다.RANDONKEY 커맨드레디스에 저장된 전체 키 중 하나를 무작위를 반환한다한 가지 종류의 데이터만 저장된 경우
비트맵은 Redis 의 string 자료 구조를 활용한다하나의 키에 최대 512MB 까지 저장이 가능하다.1천만 명의 유저를 충분히 카운팅할 수 있다1천만명 인당 1천 만개의 비트로 나타낼 수 있고, 대략 1.2MB 정도임.1천만명 카운트는 껌이다.다만, 계속적으로 쌓
캐시는 데이터 스토어의 데이터를 임시로 저장해 사용자가 자주 접근하는 데이터를 빠르게 제공하는 저장소임캐시는 DB보다 적은 양의 데이터를 저장, 주로 메모리에 저장되어 빠른 접근 속도를 제공함.레디스 만료 시간은 데이터가 얼마나 오래 저장될 것인지를 나타내는 시간임.시
캐시를 사용하는 경우, 만료 시간을 설정하는 것이 필수적이다.모든 키에 대해 만료 시간을 동일하게 설정하는 경우, 대규모 트래픽 환경에서 캐시 스탬피드(cache stampede) 현상이 발생가능함.많은 요청이 동시에 캐시 만료를 인식하고, DB 에 접근하여 서버에 과
세션은 서비스를 사용하는 클라이언트의 상태 정보를 의미한다.역할어플은 현재 서비스에 로그인된 클라이언트가누구 인지어떤 활동을 하는지 저장함.유저가 서비스를 떠나면 세션 스토어에서 유저의 정보를 삭제함예시쇼핑몰 사이트에서 유저가 장바구니에 담은 물건최근 본 아이템각 페이
근래 서비스 아키텍처의 경우 여러 모듈이 서로 느슨하고 적절하게 연결된 구조를 선호함여럿 장점이 있겠지만, 모듈 간의 효율적인 메시징 솔루션 → 메시지 브로커가 필수적임비동기 통신이 권장되는 상황서비스 간 커넥션의 실패 상황을 대비해 비동기 통신을 사용해야하는 경우!메
정의연속적인 데이터의 흐름.일정 데이터 조각의 연속을 말한다.바이트 스트림 상황10GB 의 텍스트 파일을 처리하는 어플처리 방식파일을 단어 단위 또는 줄 단위로 잘게 쪼개서 처리.설명파일 하나는 유한하지만, 읽어올때는 애플리케이션은 바이트 스트림을 처리하는 것처럼 동
일단 기본 생성자가 없기에 발생하는 문제임기존에 생성자가 존재했는데 임의로 삭제해서 발생함.@NoArgsConstructor 추가부모 클래스에도 별도로 기본생성자를 추가해야됨.