lottie
Seungjun's blog
blog
Redis란?

Redis란?

 레디스(Redis)는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 비관계형 데이터베이스 관리 시스템(DBMS)이다. 주로 데이터 베이스가 과부하 되지 않도록 캐시 데이터 서버로 이용한다.


특징

  • Key, Value 구조 : 덕분에 쿼리를 사용할 필요가 없다.


  • 인메모리 데이터 저장소 : 데이터 입출력이 메모리에서 이루어져 속도가 빠르다.


  • List, Set, Sorted Set, Hash 등과 같은 Collection을 지원한다.

    • String : 가장 일반적인 key - value 구조의 형태.

    • Sets : String의 집합. 여러 개의 값을 하나의 value에 넣을 수 있다. 포스트의 태깅 같은 곳에 사용될 수 있다.

    • Sorted Sets : 중복된 데이터를 담지 않는 Set 구조에 정렬 Sort를 적용한 구조로 랭킹 보드 서버 같은 구현에 사용할 수 있다.


  • Lists : Array 형식의 데이터 구조. List를 사용하면 처음과 끝에 데이터를 넣고 빼는 건 빠르지만 중간에 데이터를 삽입하거나 삭제하는 것은 어렵다.


  • Single Threaded : 한 번에 하나의 명령만 처리할 수 있다. 그렇기 때문에 중간에 처리 시간이 긴 명령어가 들어오면 그 뒤에 명령어들은 모두 앞에 있는 명령어가 처리될 때까지 대기가 필요하다.


주의할 점

  • 인메모리 데이터 저장소의 특성상, 서버에 장애가 발생했을 경우 데이터 유실이 발생할 가능성이 높다.

  • 메모리 관리가 중요.

  • 싱글 스레드의 특성상, 한 번에 하나의 명령만 처리할 수 있다. 처리하는데 시간이 오래 걸리는 요청, 명령은 피해야 한다.