![Redis vs Memcached](https://images.velog.io/images/sileeee/post/68697446-3b0a-4288-b0f8-c39789e73174/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-02-16%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.32.16.png)
레디스는 현대 분산 시스템에서 중요한 역할을 하는 Redis: 인메모리 키-밸류 데이터베이스의 완벽한 안내서입니다. 대용량 서비스에서 빠른 응답 시간을 보장하며, 특수한 저장 및 조회 기능을 제공합니다. 본 글에서는 레디스의 중요한 특성과 그것을 어떻게 사용할 수 있는지에 대해 탐구하겠습니다.
Redis vs Memcached
- Redis:
- 다양한 자료구조(Collection) 지원
- Replication과 Cluster 모드를 제공
- 비교적 메모리 관리가 불안정할 수 있음
- Memcached:
- 메모리 관리가 더 안정적
- 기능 측면에서는 Redis보다 제한적
Redis의 주요 특징
자료구조
Redis는 여러 자료구조를 지원합니다: – Strings: 키/밸류 저장용 – Set: 유일한 값들만을 포함 – Sorted Set: 랭킹과 같은 정렬이 필요한 경우 – Hash: 키-밸류 내부 구조 – List: 순서가 있는 배열
In-Memory Cache Solution![In-Memory Cache - GridGain Systems](https://www.gridgain.com/sites/default/files/2021-redesign/in-memory-cache.png?1)
데이터를 빠르게 가져오기 위해 RAM에서 작동하는 캐싱 솔루션을 제공합니다.
Open Source
BSD 3 License로 공개되어 있으며, GitHub Repository에서 확인 가능합니다.
Cluster 지원
분산 시스템을 구축하는 데 필요한 클러스터 기능을 제공합니다.
주요 사용처
국내외 대기업에서 활발하게 사용되며, 카카오, 쿠팡, 페이스북, 넷플릭스 등이 대표적입니다.
Redis 명령어와 활용 사례
Strings
키/밸류를 저장하고 조회할 수 있습니다.
set <key> <value> get <key>
Set
친구 리스트나 팔로워 리스트 등 중복을 허용하지 않는 데이터를 저장하는 데 적합합니다.
SADD <key> <item> SISMEMBER <key> <item> SREM <key> <item> SMEMBERS <keys>
Sorted Set
랭킹 시스템 구현과 같은 경우에 활용될 수 있으며, Skiplist 자료구조를 사용합니다.
Hash
내부 키-밸류 구조를 갖는 데이터 저장용입니다.
HGETALL <key>
Redis Transaction
![REDIS TRANSACTION IN JAVA. We had developed an application to… | by Engin Demircioğlu | turkcell | Medium](https://miro.medium.com/v2/resize:fit:896/1*06Z-rTlIUr0othNGwZ8bEg.png)
한 번에 여러 명령을 실행하려면 MULTI
와 EXEC
을 사용합니다.
Redis Pipeline
![Spring boot] Redis Pipeline을 활용한 Redis 다중 Insert 작업](https://velog.velcdn.com/images/jsb100800/post/926da50a-d418-46ae-8db1-76f09a584274/image.png)
Redis 성능 최적화
- Redis Pipeline: 한 번에 여러 명령을 보내 처리 시간을 단축
- 클러스터 모드: 가용성과 부하 분산을 위한 클러스터 설정
- 적절한 자료구조 선택: 사용 사례에 맞는 자료구조의 활용
정리
Redis는 다양한 데이터 처리 요구에 대응할 수 있는 강력한 인메모리 키-밸류 저장소입니다. 캐싱, 정렬, 유니크한 집합 처리 등 다양한 기능을 제공하며, 현대 웹 서비스 구축에 필수적인 도구 중 하나입니다. 대용량 트래픽을 지원하는 대규모 서비스에서도 안정적으로 활용되고 있으며, 국내외 많은 기업에서 선호하는 선택지로 자리 잡고 있습니다.
레디스에 대한 기본적 정의를 알고 싶으시면 아래 링크를 통해 확인하시길 바랍니다.