[Redis] 레디스 개요
2023. 1. 13. 10:27
728x90
반응형
들어가며
요즘 서버 환경을 구성하는 단계에서 빠지지 않는 구성중에 하나라고 생각이 듭니다.
개인 적으로 좀 더 정리하고자 늦은감은 있지만 Redis에 대해서 정리하였습니다.
1. Redis 란?
레디스는 REmote DIctionary Server 를 나타내는 약자로서, 2009년 살바토르 산필리포(Salvatore Sanfilippo)가 C언어로 레디스를 개발했다.
Key-Value 형식의 고성능의 In-memory 데이터베이스로서, 모든 데이터를 메모리에 저장하기 때문에 읽기와 쓰기 명령이 매우 빠른 장점을 가지고 있다.
2015년부터 Redis Labs이 지원하고 있으며, 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS이다.
개방형 소스 (BSD 라이선스) 를 따른다.
2. Redis의 주요 특징
- 디스크가 아닌 메모리 기반의 데이터 저장소이다. (In-Memory Data Structure Store)
- 레디스는 싱글 스레드로 동작한다.
- 싱글 스레드로 동작하는 서버의 모든 자료구조는 Atomic 하기 때문에 Race Condition을 피해 데이터의 정합성을 보장하기 쉽다.
- 레디스는 빠른 데이터 접근 속도와 데이터의 일관성 (Consistency) 를 보장하기 때문에, 캐싱과 Session 에 많이 사용된다.
- 레디스는 데이터를 디스크에 저장 할 수 있다.
- 레디스의 데이터 영속성 (Data Persistence)은 저장된 데이터를 바이너리 스냅샷으로 생성하거나, 시간에 결쳐 실행된 모든 커맨드를 순서대로 저장해 사람이 읽을 수 있는 파일로 생성함으로써 이루어질 수 있다. 이 두 방식은 스냅샷 (Snapshotting)과 저널링(Journaling) 이다.
- 레디스는 키 만료 (Key Expiration)와, 트랜젝션 (Transaction), 게시/구독(publish/subscribe) 기능을 설정 할 수 있다.
- 부하 분산에 용이한, Master / Slave (Replication) 이 가능하다.
3. Redis의 활용
- Load Balance 개발 환경에서의 User Session 처리
- 게임서버에서의 Ranking 처리
- 3-Tier (Web - WAS - DB) 구조에서의 DB 성능부하를 줄여 줄 Cache 처리
- 웹소켓 환경에서의 각 서버와의 데이터 BroadCast 및 BackPlane 처리를 위한 Redis의 Pub/Sub 기능
- In-Memeory 디비만을 이용한 데이터 저장소 처리
참조
https://meetup.toast.com/posts/224
https://velog.io/@hyeondev/Redis-란-무엇일까
https://velog.io/@mu1616/레디스-Redis의-개념-특징
END
728x90
'Redis' 카테고리의 다른 글
[Redis] 레디스 데이터 타입 - Hash (0) | 2023.01.25 |
---|---|
[Redis] 레디스 데이터 타입 - Set (0) | 2023.01.23 |
[Redis] 레디스 데이터 타입 - List (0) | 2023.01.20 |
[Redis] 레디스 데이터 타입 - String (0) | 2023.01.18 |
[Redis] 레디스 Collections 알아보기 (0) | 2023.01.16 |