Redis 기본 정의
Redis는 ANSI C 언어로 작성된 오픈소스 소프트웨어로 네트워크 접근을 지원하며 메모리 저장과 영속 기능을 갖춘 키‑값(Key‑Value) 데이터베이스 / 저장 시스템입니다. 여러 프로그래밍 언어용 클라이언트 API를 제공합니다.
- NoSQL 비관계형 데이터베이스에 속합니다;
- Memcached와 같은 계열이지만 기능이 더 풍부하며 Memcached의 단점을 보완할 수 있습니다;
- MySQL 등 관계형 데이터베이스의 보조 캐시 솔루션으로 자주 사용됩니다.
지원하는 데이터 타입
String:문자열 타입List:양방향 연결 리스트Set:순서가 없는 집합zset(sorted set):정렬된 집합Hash:해시 구조(Map과 유사)
Memcached는 문자열 타입만 지원하며 이것이 둘의 대표적인 차이점 중 하나입니다.
주요 특징
- 다중 언어 클라이언트 지원
공식에서 Java, C/C++, C#, PHP, JavaScript, Python, Ruby, Perl 등 다양한 언어용 SDK를 제공해 개발 연동이 간편합니다. - 마스터‑슬레이브 동기화
마스터‑슬레이브 복제를 지원해 원격 백업, 읽기‑쓰기 분리를 구현하고 가용성을 높입니다. - 고성능
데이터를 메모리에 우선 저장해 읽기 쓰기 속도가 매우 빠르며 분산 캐시로 널리 쓰입니다. - 데이터 영속 기능
메모리 데이터를 디스크에 저장 가능해 재시작해도 데이터가 전부 사라지지 않습니다(Memcached는 기본적으로 영속 기능이 없습니다).
배경
초기 Redis 프로젝트는 VMware의 지원을 받아 개발 및 유지보수되었습니다.
데모는 WinForm(C#) 간단한 Redis 클라이언트 예제로 진행합니다. C#에서 Redis를 다루는 입문용 샘플 프로그램입니다.
- 키‑값 설정
- 키로 값 조회
Redis 와 Memcached 간단 비교
| 특징 | Redis | Memcached |
|---|---|---|
| 데이터 타입 | 5가지 기본 구조 | 문자열만 지원 |
| 영속화 | RDB/AOF 영속 지원 | 영속 기능 없음 |
| 마스터‑슬레이브 복제 | 지원 | 기본 지원하지 않음 |
| 메모리 제거 정책 | 다양한 제거 정책 | LRU 제거 |
소개
Next: 설치