NoSQL/Redis
-
개발자를 위한 레디스 - 5장: 레디스를 캐시로 사용하기NoSQL/Redis 2024. 5. 6. 17:36
1. 레디스와 캐시1) 캐시로서의 레디스사용이 간단하고(key-value형태로 저장) 다양한 자료 구조를 제공한다모든 데이터를 메모리에 저장하기에 저장 및 조회가 상당히 빠르다자체적으로 고가용성 기능을 가지고 있다(레디스 센티널/클러스터로 자동으로 장애 감지)스케일 아웃이 편리하다(클러스터로 자체 샤딩) 2) 캐싱 전략(1) 읽기 전략 - look-aside: 가장 일반적인 배치 방법 (a.k.a lazy loading) 장점: 레디스 장애 시 DB에서 데이터를 가져올 수 있다단점: 장애 발생 시 요청이 매우 많았다면 연결이 한번에 DB로 쏠려서 전체 응답속도가 느려진다※ 레디스를 새로 기동했을 때 캐시 미스로 DB로 연결이 몰릴 수 있기에, 미리 레디스로 데이터를 밀어넣는 캐시 워밍(cache warm..
-
개발자를 위한 레디스 - 8장: 복제NoSQL/Redis 2024. 5. 6. 16:11
레디스에서 고가용성을 확보하기 위한 두 가지 기능.※ 가용성: 전체 시간 중 서비스를 정상적으로 사용할 수 있는 시간복제: 마스터 노드의 데이터를 복제본 노드로 실시간 복사하는 기능자동 페일오버: 마스터 노드에서 발생한 장애를 감지해 레디스로 들어오는 클라이언트 연결을 자동으로 복제본 노드로 리디렉션 하는 기능 1. 레디스에서의 복제 구조레디스 복제본 노드의 사용 이유.마스터 노드가 다운되었을 경우를 대비일부 트레픽을 복제본으로 돌려 부하 분산백업을 복제본에서 수행하여 서비스 영향도 최소화레디스는 멀티 마스터 구조를 지원하지 않으므로 복제본 노드에서는 읽기 작업만 수행할 수 있다. 1) 복제 구조 조성하기# 복제본이 될 노드에서 다음 명령어 수행REPLICAOF 2. 복제 메커니즘1) 디스크를 사용..
-
개발자를 위한 레디스 - 7장: 레디스 데이터 백업 방법NoSQL/Redis 2024. 5. 2. 22:31
1. 레디스에서 데이터를 영구 저장하기1) 복제와 백업의 차이복제: 서비스 가용성을 위한 것백업: 장애 상황에서 데이터의 복구를 위한 것 2) 레디스 백업의 종류AOF(Append Only File): 레디스 인스턴스가 처리한 모든 쓰기 작업을 차례대로 기록, 복원 시 파일을 다시 읽어가며 재구성 → 원하는 시점으로 복구가 가능하지만 RDB방식에 비해 용량이 크고 주기적으로 압축이 필요RDB(Redis DataBase): 일정 시점에 메모리에 저장된 데이터 전체를 snapshot하여 저장 → AOF방식보다 복원이 빠르지만 특정 시점으로의 복구는 불가능하나의 인스턴스에서 RDB와 AOF옵션을 모두 사용 가능하고, 관계형 DB만큼의 데이터 안정성을 위하는 경우 두 가지 백업 방식을 동시에 사용하는것을 권장...
-
개발자를 위한 레디스 - 4장: 레디스 자료구조 활용 사례NoSQL/Redis 2024. 4. 28. 18:37
1. Sorted Set을 사용한 실시간 리더보드# 플레이어별 점수 저장> ZADD daily-score:220817 28 player:286(integer) 1> ZADD daily-score:220817 400 player:234(integer) 1> ZADD daily-score:220817 45 player:101(integer) 1> ZADD daily-score:220817 357 player:24(integer) 1> ZADD daily-score:220817 199 player:143(integer) 1# 상위 3명의 점수 획득> ZREVRANGE daily-score:220817 0 2 withscores1) "paleyr:234"2) "400"3) "player:24"4) "357"5)..
-
개발자를 위한 레디스 - 3장: 레디스 기본 개념 (2) 레디스에서 키를 관리하는 법NoSQL/Redis 2024. 4. 11. 23:12
2. 레디스에서 키를 관리하는 법 1) 키의 자동 생성과 삭제 Stream, Set, Sorted Set, Hash와 같이 하나의 키가 여러 개의 아이템을 가지고 있는 자료 구조에서는 자동으로 키가 생성되고 삭제된다. 키 생성의 세 가지 공통적인 규칙은 아래와 같다. 키가 존재하지 않을 때 아이템을 넣으면 아이템을 삽입하기 전에 빈 자료 구조를 생성 모든 아이템을 삭제하면 자동으로 키도 삭제 (Stream은 제외) 키가 없는 상태에서 키 삭제, 아이템 삭제, 자료 구조 크기 조회 같은 읽기 전용 커맨드를 수행하면 에러 반환 대신 키가 있지만 아이템이 없는 것처럼 동작 2) 키와 관련된 커맨드 (1) 키 조회: EXISTS // EXISTS key [key ...] > SET hello world OK /..
-
개발자를 위한 레디스 - 3장: 레디스 기본 개념 (1) 레디스의 자료 구조NoSQL/Redis 2024. 4. 11. 23:11
1. 레디스의 자료 구조 1) String key-value 형식의 문자열. (최대 512MB) // hello를 키로, world를 값으로 문자열 저장 > SET hello world OK // hello 키의 값 조회 > GET hello "world" // NX: 지정한 키가 없을 때만 새로운 키 저장 > SET hello newval NX (nil) // XX: 지정한 키가 있을 때만 덮어쓰기 > SET hello newval XX OK > GET hello "newval" // 숫자도 문자의 일부이므로 저장 가능 > SET counter 100 OK // 저장한 숫자를 원자적으로 조작 > INCR counter (integer) 101 > INCR counter (integer) 102 > IN..