Redis 3

Redis 메모리 관리

Redis는 메모리 사용량이 많아질수록 시스템 성능에 영향을 미칠 수 있음.1. 메모리 제한maxmemory 설정을 통해 Redis가 사용할 수 있는 메모리의 최대 양을 제한할 수 있음해당 설정을 통해 메모리 부족으로 인한 시스템 장애 방지 가능(maxmemory를 설정하지 않으면 시스템이 제공하는 모든 메모리 사용 가능 즉, Out of Memory(OOM) 오류 발생가능)2. 메모리 정책memory-policy 설정을 사용하여 메모리 사용 한도에 도달했을 때의 동작을 정의할 수 있음Redis가 메모리를 효율적으로 관리할 수 있음3. Maxmemory 설정redis.conf 파일에서 설정 또는 Redis 서버 실행 시 명령줄 인수로 설정 가능maxmemory 256mb4. Maxmemory 정책 (ma..

Redis 2025.03.02

Redis Cluster

Redis Cluster 란여러 노드에 자동적인 데이터 분산을 하고, 일부 노드가 실패 혹은 통신 단절에도 계속 운영되는 가용성을 제공또한 고성능을 보장하면서도 선형 확장성을 제공일반적으로 샤딩을 할 때 아래와 같이 Hash-Based Sharding을 사용할 수 있다.-> 문제: 샤드가 하나 늘어날 때마다 기존 데이터들을 전혀 다른 곳으로 이동시켜야 한다.-> 해결: HashSlot 사용HashSlot 동작 방식Redis Cluster는 16,384개의 hash slot을 사용각 키는 CRC16 알고리즘으로 해시한 후 16384로 모듈로 연산하여 슬롯 할당슬롯은 클러스터의 노드들에게 분배됨노드 추가/제거 시 해당되는 슬롯만 재배치하면 되므로 효율적특징full-mesh 구조로 통신 (모든 노드끼리 연결되..

Redis 2025.03.02

Redis Cache

캐싱을 사용하여 권한 확인시 DB요청 최소화Redis vs In-Memory Cachein memory 대신 redis 사용 이유단일 서버의 경우 in memory를 사용해도 문제 없음서버를 많이 띄우게 되는 경우 캐싱된 내용을 공유하도록 하기 위해(중복 요청 최소화)Redis는 영속성 보장 (디스크에 데이터 저장 가능)다양한 자료구조 지원 (String, List, Hash, Set, Sorted Set 등)Redis 라이브러리 선택aioredis 대신 redis 사용 이유aioredis는 python 3.11에서 지원 X → redis에 aioredis 내용 통합됨redis-py 라이브러리가 비동기 지원 (redis.asyncio 사용)Redis 연결 방식StrictRedis를 이용하여 직접 커넥션을..

Redis 2025.03.02