본문 바로가기

redis4

Redis Cluster: 고성능과 고가용성을 위한 데이터 분산 전략 Redis Cluster가 제공하는 것 여러 노드에 자동적인 데이터 분산 일부 노드의 실패나 통신 단절에도 계속 작동하는 가용성 고성능을 보장하면서 선형 확장성을 제공 Redis Cluster 특징 1. Partitioning(파티셔닝) 16384개의 해시 슬롯을 사용하여 데이터를 파티셔닝합니다. 키의 해시 값에 따라 특정 슬롯에 할당됩니다.(CRC16 해시 함수를 사용) 각 Redis 노드는 16384개의 해시 슬롯 중 일부를 책임집니다. 클라이언트는 키의 해시 슬롯을 계산하여 해당 데이터를 저장하거나 검색할 Redis 노드를 알 수 있습니다. 1) CRC16 해시 함수 CRC16은 키를 16비트의 정수 값으로 변환하는데 0 ~ 65535 까지의 범위를 가질 수 있습니다. 2) 해시 슬롯 Redis C.. 2024. 1. 25.
Redis Sentinel의 이해: 고가용성을 위한 모니터링 및 장애 조치 전략 Sentinel 구조 기능 모니터링(Monitoring) : Redis의 Master / Slave 가 정상 작동하고 있는지 지속적으로 감시 알림(Notification) : Redis 가 failover 되었을 때 pub / sub 로 클라이언트에게 알려주거나 shell script 로 이메일이나 SMS로 클라이언트에게 알려준다. Sentinel은 '"__sentinel__:hello"` 채널을 통해 pub / sub 메시지를 전송합니다. 클라이언트는 이 채널을 구독하여 Sentinel의 이벤트를 수신할 수 있습니다. 주의할 점은 '"__sentinel__:hello"` 채널은 Sentinel의 상태 및 구성 정보를 주기적으로 공유하기 위한 주요 채널이기 때문에 failover 외의 다양.. 2024. 1. 25.
Redis ZSet의 이해: 스코어 기반 정렬의 모든 것 Sorted Set (ZSet) 이란? Set의 특성을 그대로 가지면서 추가적으로 저장된 Value(Member)들의 순서도 관리해줍니다. 순서를 위해 value(member)에 대해 score를 필요에 맞게 설정할 수 있으며, score를 기반으로 정렬됩니다. Sorted Set 구조 Sorted Set 명령어 1. ZADD ZADD key scroe member zadd는 key와 score member를 통해 값을 추가 및 변경 하는 명령어입니다. zset에 각 과일의 이름과 가격 데이터를 추가합니다. 과일 데이터를 저장할 zset의 key는 fruit라고 정하였고 key의 각 value(member)를 apple, banana, melone, pineapple, peach라고 정하였습니다. 1개씩.. 2024. 1. 25.
싱글 스레드의 이해와 Redis의 고급 관리 전략 1. Redis 운영과 관리 Redis는 싱글 스레드 Redis를 사용하면서 Redis가 싱글 스레드라는 걸 잊어버려 의도치 않게 성능이 안나오거나 장애가 발생하는 경우가 있습니다. Redis는 싱글 스레드 기반이므로 오래 걸리는 명령은 적합하지 않습니다. ex) keys 명령어 keys는 서버에 저장된 모든 Key 목록을 보는 명령어 입니다. 모든 Key를 검색하기 때문에 Key가 몇백만개, 몇천만개 등.. Key가 많을 수록 많은 시간을 소모하게 됩니다. flushall / flushdb 명령을 주의하자 Redis는 db라는 가상의 공간을 분리할 수 있는 개념을 제공해주고 select 명령어로 이런 db로 이동할 수 있습니다. flushdb는 이러한 db 하나에 대한 모든 데이터를 지우는 것이며 fl.. 2024. 1. 25.