본문 바로가기

Others/데이터베이스

Redis

레디스는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다. 2009년 살바토르 산필리포가 처음 개발했다. 2015년부터 Redis Labs가 지원하고 있다. 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS이다. BSD 라이선스를 따른다. 위키백과



후다닥 정리하는 장점


- 고가용성구현이 가능 ( Master - slave, Chain 모델 등 )

- 모든 데이터 구조 지원 : stack(LIFO), queue(FIFO) 지원


Key

List 

Set 

Queue 

value 

array 

집합 

pop 등 

 json 형태

 

 

FIFO


* HA (고가용성)

- 구현 대상 : 365일 24시간 서비스

- 고가용성 적용

1) 클러스트링 : 여러대상을 묶어 주키퍼가 각 node를 관리(hash ring)하는 코디네이터 기법


2) Master - slave 모델 : 읽기(select)와 쓰기(CRUD 포함)에 대한 데이터 분산
( select가 대부분의 부하를 차지[ select:CRUD = 8:2 ]하므로 slave를 바라보도록, 나머지 CRUD가 master를 바라보도록)

3) sharding 기법 : 데이터를 쪼개서 넣는다.


+ pm2 (일종의 Tomcat)과 함께 쓰임 : 서버가 다운되도 redis에 저장된 값들을 dump로 떨어뜨려 재 시작 시, 각 값(key)들을 백업하여 사용할 수 있다.




메모리를 할당하는 DB같은 놈인 Redis는 언제 사용하나? 대표적인 예가 로그인 세션