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일부 노드에 장애가 생기거나 통신이 끊겨도 클러스터는 일정 수준의 작동을 유지함전체 장애 시 중단마스터 노드의 과반수가 다운되면 → 전체 클러스터가 중단됨→ 클러스터는 최소 다수의 마스터가 살아있어야 운영 가능 TCP ports포트 종류설명클라이언트 포트- 일반 Redis 명령 처리용 포트 (예: 6379)- 클라이언트가 명령을 보내는 포트- 클러스터 간 키 마이그레이션 시에도 사용됨클러스터 버스 포트- 노드 간 내부 통신 전용 포트- 기본값: 클라이언트 포트 + 10000 (예: 16379)- 바이너..

Database/Redis 2024.09.08

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

0. Replication동기화replica가 master를 실시간으로 복제함항목설명특징비동기 복제- 지연이 낮음- 백그라운드에서 복제가 이루어짐복제가 진행되는 동안에도 서비스는 중단 없이 유지됨다중 레플리카하나의 Master에 여러 Replica를 연결할 수 있음 - 읽기 부하 분산- 고가용성 확보계단식 복제Replica가 또 다른 Replica의 Master가 될 수 있음계층적 구조 구성 가능 재연결연결이 끊겨도 replica는 자동으로 master에 재연결을 시도함재연결 성공 시, 복제를 시도함항목Partial RecynchronizationFull Recynchronization동작 조건복제 연결이 일시적으로 끊겼다가 재연결될 때Replica가 처음 연결되거나, 복제 기록이 손실된 경우복구 방식끊..

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