**Key, Value 구조
**의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 DBMS
DB, 캐시, 메세지 브로커로 사용되며 **인메모리 데이터 구조
**를 가진 저장소
인메모리 데이터 구조 = 메모리 상에 데이터를 저장 (key, value DB중 가장 많이 쓰임)
Key, Value 구조이기 때문에 쿼리를 사용할 필요가 없다
데이터를 디스크에 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 속도가 빠름
String, Lists, Sets, Sorted Sets, Hashes 자료 구조를 지원함
String : 가장 일반적인 key - value 구조의 형태
Sets : String의 집합입니다. 여러 개의 값을 하나의 value에 넣을 수 있습니다.
Sorted Sets : 중복된 데이터를 담지 않는 Set 구조에 정렬 Sort를 적용한 구조
Lists : Array 형식의 데이터 구조입니다.
List를 사용하면 처음과 끝에 데이터를 넣고 빼는 건 빠르지만 중간에 데이터를 삽입 삭제 어려움
Single Thread
한 번에 하나의 명령만 처리
중간에 처리 시간이 긴 명령어가 들어오면
그 뒤에 명령어들은 모두 앞에 있는 명령어가 처리될 때까지 대기가 필요
서버에 장애가 발생했을 경우 그에 대한 운영 플랜이 꼭 필요하다.
메모리 관리 중요
싱글 스레드의 특성상, 한 번에 하나의 명령만 처리할 수 있기 때문에
처리하는데 시간이 오래 걸리는 요청, 명령은 피해야한다.