Redis

Redis

Redis vs LevelDB

1. 시스템 설계 패턴: Dual Index (이중 인덱스)Redis Sorted Set의 "Skip List + Hash Table" 조합은 시스템 프로그래밍에서 반복적으로 등장하는 설계 패턴이다. 하나의 자료구조로는 두 가지 연산을 동시에 최적화할 수 없기 때문에, 두 인덱스를 결합하는 것이다. 패턴의 핵심:하나의 데이터에 대해 두 가지 접근 경로가 필요할 때→ 두 자료구조를 결합하고, 같은 노드가 두 곳에 동시에 소속된다 Redis Sorted Set이 이 패턴의 대표 사례다:Redis Sorted Set├── Hash Table → "이 member의 score가 뭐야?" → O(1) 포인트 조회└── Skip List → "score 순서대로 상위 100명?" → O(log n) 범위 검색..

Redis

Redis Lua와 Pub/Sub

1. Redis Lua 스크립팅Lua란 무엇인가정의: Lua는 가볍고 빠른 스크립팅 언어다. Redis에 내장되어 있어, 여러 Redis 명령어를 하나의 원자적 트랜잭션으로 실행할 수 있다.핵심 포인트:Lua 스크립트가 실행되는 동안 Redis는 다른 명령어를 받지 않는다 (single-threaded)여러 명령어를 네트워크 왕복 없이 서버 측에서 한 번에 실행한다스크립트 전체가 성공하거나 전체가 실패한다 (원자성)Redis가 싱글 스레드이기 때문에 Lua 원자성이 보장되는 근본 원리는 4편 LevelDB 비교의 "싱글 스레드 쓰기 모델" 섹션에서 상세히 다룬다.왜 Lua를 쓰는가 -- 원자성 문제Lua 없이 대기열 진입을 구현하면 다음과 같은 레이스 컨디션(race condition) 문제가 발생한다...

Redis

Redis In CGV 아키텍처

1. Redis 배포 아키텍처 — Non-Cluster vs ClusterRedis를 프로덕션에 배포할 때 가장 먼저 결정해야 하는 것이 배포 모드다.ElastiCache에서는 Cluster Mode Disabled(Non-Cluster)와 Cluster Mode Enabled(Cluster) 두 가지를 제공한다.이 선택이 데이터 분산, Lua 스크립트 동작, 고가용성 전략 전체를 결정한다.Node, Shard, Slot 기본 개념Redis 배포 구조를 이해하려면 세 가지 핵심 개념을 먼저 알아야 한다.[Node, Shard, Slot의 관계]Node = ElastiCache 인스턴스 1개. 독립된 Redis 프로세스가 실행되는 단위. cache.t3.small 1대 = Node 1개...

Redis

Redis 기본 개념 — 왜 메모리이고, 왜 Sorted Set인가

1. Redis란 무엇인가정의정의: Redis(Remote Dictionary Server)는 메모리 기반의 키-값(Key-Value) 데이터 저장소다. 모든 데이터를 RAM에 저장하므로 디스크 기반 DB(MySQL, PostgreSQL)보다 읽기/쓰기가 수십~수백 배 빠르다.핵심 포인트:Remote = 네트워크를 통해 접근하는 (로컬 변수가 아니라 서버에 있는)Dictionary = Key-Value 쌍으로 저장하는 (Python의 dict, Java의 HashMap과 같은 개념)Server = 독립 프로세스로 동작하는 서버이름 자체가 "원격에 있는 딕셔너리 서버"라는 뜻이다왜 Redis인가? -- 속도일반적인 DB(MySQL)는 디스크에 데이터를 저장한다. 디스크 I/O는 느리다. 반면 Redis는 ..

hsb_02
'Redis' 카테고리의 글 목록