Database/Redis 5

[Redis] 3-4. Introduction to Redis: Pub/Sub

1. Pub/Sub메시지를 채널을 통해 발행자와 구독자가 느슨하게 연결하는 구조발행자는 단순히 메시지를 채널에 발행구독자는 관심 있는 채널을 구독하여 해당 메시지를 수신서로 존재를 몰라도 메시지 통신이 가능하여 확장성과 유연성이 높음 2. 메시지형식message: [message, 채널명, 메시지 내용]pmessage: [pmessage, 패턴, 채널명, 메시지 내용] 특징메시지는 최대 한번만 전송됨일반적인 key-value 공간과는 무관함 (db 상관 없음)수신 실패 시 재전송 없음 (내구성이 필요한 경우 Redis Streams를 고려할 것) 3. 명령어더보기SUBSCRIBE ch1 ch2PSUBSCRIBE patternUNSUBSCRIBE chPUNSUBSCRIBE patternPUBLISH ch ..

Database/Redis 2025.06.04

[Spring Data Redis] 1. Redis

1. RedisTemplateSpring에서 Redis와 상호작용할 수 있게 해주는 중심 클래스.항목설명동작 방식자동으로 직렬화 및 연결 관리 처리 (고수준 API)구성RedisOperations 인터페이스 구현스레드 안전성설정 완료 후 스레드 안전함뷰(Views)opsForValue(), opsForList()→ 특정 자료구조 전용 API처럼 사용 가능 예제) ListOperations더보기@Autowiredprivate ListOperations listOps;public void addLink(String userId, URL url) { listOps.leftPush(userId, url.toExternalForm());}특정 자료형용 opsForXxx() 뷰를 DI로 주입 가능vs Stri..

Database/Redis 2025.05.14

[Redis][Community Edition] 2-7. Manage Redis: Scale with Redis Cluster

1. Redis Cluster 101수평 확장 및 복제를 위한 공식 구조✅ Auto Sharding (데이터가 여러 노드에 자동 분산 저장됨) ✅ Partial Failure Tolerance (일부 노드에 장애가 생기거나 통신이 끊겨도 클러스터는 작동을 유지함)⚠️ 마스터 노드의 과반수가 다운되면 전체 클러스터 다운 (다수의 마스터가 살아있어야 운영 가능) Master-Replica model마스터 노드들이 모든 해시 슬롯(16384개)을 분할해서 관리✅ 각 마스터는 1개 이상의 레플리카를 가질 수 있음➡️ 마스터 노드가 죽으면, 해당 마스터의 레플리카 중 하나를 자동으로 승격하여 서비스를 유지함 TCP ports포트 종류설명특징클라이언트 포트일반 Redis 명령 처리용 포트 (예: 6379)- 클라이..

Database/Redis 2024.09.08

[Redis][Community Edition] 2-6. Manage Redis: Replication

1. Replicationmaster의 데이터를 replica가 실시간으로 복제함✅ 비동기 복제: master는 데이터셋을 바꾸는 이벤트를 명령 스트림 형태로 replica에 계속 전달함 (백그라운드 동작)✅ 계층적 구조 지원: Replica가 또 다른 Replica의 Master가 될 수 있음 2. 재연결연결이 끊겨도 replica는 자동으로 master에 재연결을 시도함➡️ 연결 성공 시, 복제를 시도함 종류항목Partial RecynchronizationFull Recynchronization동작 조건복제 연결이 일시적으로 끊겼다가 재연결될 때Replica가 처음 연결되거나, 복제 기록이 손실된 경우복구 방식끊긴 기간 동안 놓친 명령만 복구(replication backlog 활용)전체 데이터를 R..

Database/Redis 2024.09.08

[Redis] 2. Understanding Data Types

cachingqueuingevent processing 1. Stringbyte sequence 저장문자열 매핑에 주로 사용됩니다. (key, value 모두 문자열) Data StructureTextSerialized objectBinary array(image, video, audio) Usagecachecountersbitwise operation 더보기SET bike:1 Deimos # key(namespace:id) - valueGET bike:1 # Deimos 2. JSONSyntax: JSONPath UsageAPI Response (cached) 더보기JSON.SET user:1001 $ '{"name": "John Doe", "email": "john.doe@example.com", ..

Database/Redis 2024.09.05