안녕하세요. 달소입니다.
이번에는 NoSQL로 유명한 Redis를 소개해드리고자 합니다.
Redis의 메모리를 사용해서 빠른 속도를 제공해주기 때문에 여러가지 분야에서 사용되고있기때문에 어떤것인지 알아놓는다면 추후에 쉽게 사용해보실 수 있을것같네요.
Redis 란?
Redis는 REmote Dictionary Server의 약자입니다. 오픈 소스로 BSD라이선스를 사용합니다.
레디스는 NoSQL 즉, 비 관계형 데이터베이스로 데이터를 메모리에 저장하고 조회하여 빠른 읽기/쓰기 속도를 보장합니다.
구조는 “Key-Value”의 구조로 되어있으며 5가지(String, Set, Sorted Set, Hash, List)의 데이터 형식을 지원합니다.
비슷한 NoSQL로는 Memcahed도 있지만 약간의 차이가(Redis는 파일로도 저장) 있기때문에 여기서는 레디스만 설명하겠습니다.
Redis의 특징
1. 속도가 매우 빠름
위에 레디스를 설명하면서 적어놓았지만 메모리에 데이터를 저장하기때문에 속도가 매우 빠릅니다.
지원하는 데이터형식에 대해서는 MySQL과 같은 관계형 데이터베이스와 비교하면 약 10배정도 빠르다고합니다.
2. 데이터의 저장
기본적으로 스냅샷 기능을 제공하며 Memchaed와 다르게 메모리에만 저장하지않고 파일로도 저장하기 때문에 저장된 시점으로 복구도 가능합니다.
3. Sharding, Master – Slave 형식 구성 가능
엘라스틱과 같은 샤딩을 지원하여 데이터를 분산저장이 가능하며
마스터-슬레이브 구조를 가져 데이터의 분실 위험을 최소화 시켜줍니다.
4. 영구적 보존 가능
Expire를 설정하지않으면 데이터가 삭제되지않습니다.
5. 여러대의 서버 구성이 가능
단점으로는 메모리의 파편화, 메모리 사용량 증가, 대용량의 데이터처리시 Memcahed보다 불안정하다는점이있습니다.
뭐.. 단점보다는 장점이 월등하니 유명기업에서 사용하리라고 생각합니다.
이 서버를 운영하고있는 Rhymix에서도 Redis를 지원하므로 저도 구축을 해야합니다 ㅎㅎ
테스트로 Ubuntu 구축부터 다음글에서 진행해보도록 하겠습니다.