본문 바로가기

언어 & 라이브러리/레디스5

[레디스] 캐싱 전략에 대해 알아보자 레디스 캐싱 전략 캐시를 어떻게 사용할지에 대한 전략이 있어야 한다. 상황에 따라 다른 캐싱 전략을 사용해야 한다. 캐시 전략은 2개의 읽기 전략과 3개의 쓰기 전략으로 총 5가지가 있다. 읽기 전략 1. Cache-Aside 2. Read-Through 쓰기 전략 1. Write-Around 2. Write-Through 3. Write-Back 읽기 전략 1. Cache-Aside 과정 캐시를 우선적으로 확인한다. 있으면 해당 데이터를 읽어온다. 없다면 DB에 접근해 데이터를 가지고 온 뒤에 캐시에 저장하게 한다. 데이터를 읽는 일이 많을때 사용하는 전략으로 일반적으로 레디스를 쓸 때 사용하는 방법이다. 캐시에 찾는 데이터가 없을때 DB에 직접 조회되어 입력되기에 Lazy Loading이라고 한다. .. 2022. 7. 6.
[레디스] 레디스 클러스터를 도커에서 구성해보자 레디스 클러스터란? 센티넬보다 발전된 형태로 멀티 마스터 구조를 지원합니다. 샤딩을 지원해 데이터 분산으로 가용성을 높입니다. Failover 기능으로 센티넬 없이 자동으로 노드 관리를 해줍니다. cluster는 스케일 아웃이 가능합니다. 확장성이 좋습니다. [Deprecated] 스케일 아웃 시에 해시 알고리즘의 이슈를 피하기 위해 Consistent Hashing을 적용해 모든 키의 재매핑을 막고 평균적인 키만 재매핑 시켜줍니다. 레디스 클러스터와 Consistent Hashing Tech Note 정보 stdio.h 님이 작성하신 글입니다. 카테고리: [ NoSQL ] 게시됨: 03 December 2019 작성됨: 03 December 2019 최종 변경: 03 December 2019 조회수: .. 2022. 3. 17.
[레디스] 메모리 관리 기법 RDB vs AOF 차이 레디스 노드 로그를 분석하다가 RDB와 AOF라는 메모리 관리 방식에 대해 알게 되어 궁금증이 생겨 찾아보게 되었습니다. 데이터의 영속성을 위한 두 가지 방식입니다. RDB(Redis DataBase) 스냅샷과 비슷한 역할을 합니다. 특정 시점의 메모리 데이터를 전부 바이너리 파일로 저장합니다. AOF 파일보다 사이즈가 작아 로딩이 빠릅니다. 저장 방법은 redis.conf의 save로 설정합니다. save 10 1: 10초간 1번 이상 변경 시 저장 여러 개도 지정해 하나라도 만족하면 수행합니다. 메모리를 많이 사용합니다. 대규모 데이터에 적합합니다. AOF(Append Only File) appendonly.aof에 저장됩니다. INSERT,UPDATE,DELETE 명령 수행 시마다 기록됩니다. ap.. 2022. 3. 17.
[레디스] 레디스 Master-Slave를 도커에 올려보자 이번 포스팅에서는 Master - Slave를 구성하고 도커에 올려보고 장애 시 어떤 로직이 발생하는지 알아보겠습니다. Sentinel Mode를 활용해 마스터 슬레이브를 감시하는 노드도 함께 만들어보겠습니다. docker compose를 활용하면 쉽게 노드를 구성할 수 있습니다. 구조는 Master 1, Slave 2, Sentinel 3개로 구성하겠습니다. 센티넬은 최소 3개 이상 홀수로 구성해야 합니다. docker-compose.yml version: '2' services: # master : bitnami/redis:6.2.6 redis-master: hostname: redis-master container_name: redis-master image: bitnami/redis:6.2.6 e.. 2022. 3. 17.
[레디스] 레디스에 대해 알아보자 레디스란?? NoSQL으로 Key-Value 타입 저장소이다. 영속성을 지원하는 인메모리 데이터 저장소이다. 읽기 성능 증대를 위해 Replication 지원. 쓰기 성능 증대를 위한 샤딩을 지원. 문자열뿐만 아니라 리스트, 해시, 셋 등 다양한 데이터 형식을 지원. 1ms 이하 빠른 응답시간 지원한다. 파티셔닝 지원으로 스케일 아웃이 쉽다. 레디스와 멤캐시드와의 차이 멤캐시드 또한 메모리 객체 시스템 멤캐시드는 멀티쓰레드를 지원해 스케일업을 통해 많은 다중 작업 처리가 가능하지만 레디스는 싱글 스레드 기반이다. 멤캐시드는 문자열만 지원한다 그러나 레디스는 문자열뿐만 아니라 리스트, 해시, 셋 등 다양한 데이터 형식을 지원한다. 스냅샷을 지원해 장애 상황시 복구에 이용할 수 있다. Master-Slave.. 2022. 3. 17.