1. 레디스는 무엇이고, 개발자는 왜 레디스를 알아야할까.

강하고 투박해보이는 첫 인상

# 설치부터 사용까지 EASY 그 자체

❯ brew install redis
❯ brew services start redis
❯ redis-cli ping
PONG
❯ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"

레디스 짱과 함께라면 아무것도 무섭지 않은 어느 날…

SET 은 성공했는데 GET이 되지 않았다.

레디스짱…우리 사이 좋았잖아 갑자기 왜 이래?

Untitled

2. 맴캐시디와 레디스 비교

어느 날, 팀장님이 캐싱을 사용할 서비스 아키텍처를 그려오라고 했다.

단순 키-값 저장소로 간결한 사용성과 빠른 속도를 자랑하는 맴캐시디, 다양한 자료구조 지원과 캐싱 외에 여러 기능도 제공하는 레디스.

둘 중 무엇을 고르면 좋을까?

| | 컨셉 | 데이터모델 | 영구성 | 데이터 최대 사이즈 | 분산 지원 | 트랜잭션 | 클라이언트 지원 | 명령어/스크립트 | 멀티스레드 유무 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 레디스 | 캐싱 저장소로만 보면 섭해

****cache,  vector database,  document database,  streaming engine, message broker | 다양한 데이터 구조 지원 | 스냅샷(RDB), AOF | 512MB | 클러스터 모드 지원 | MULTI, EXEC, DISCARD, WATCH 명령어를 사용하여 원자적으로 커맨드 관리 | jeddis, lettuce, redission | redis-cli, LUA 스크립트 | 싱글스레드

고성능, 분산 메모리 객체 캐싱 시스템 , 데이터베이스 부하를 완화하여 동적 웹 애플리케이션 속도를 높이는 데 사용하기 위한 것 (단순하고 명확한 목표) | 단순 키-값 저장소(string) | 지원 X | 1MB | 맴캐시드에서 지원하지는 않으나, 클라이언트에서 해싱으로 분산시킬 수 있음 | 지원, 빠르게 캐시 키값을 사용하는 컨셉으로 트랜잭션 같은 복잡한 기능은 지원하지 않음

경합이 된다면? *CAS 알고리즘 으로 해결 | SpyMemcached, ****XMemcached | Telnet

그래서 뭘 고를건데?

이왕이면 다홍치마고 레디스는 다홍색이다.