REDIS

TEDDY·2022년 12월 19일
0

CODECAMP

목록 보기
34/53
post-thumbnail

REDIS

: Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)이다.
데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소이다.
보통 코딩하시는분들은 대체적으로 레디스를 많이 사용한다. 그만한 이유가 있는게 아닐까?,,

REDIS 사용 이유

: 보통 데이터를 저장하는 데이터베이스는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생하여 다운되더라도 데이터가 손실되지 않는다. 하지만 매번 디스크까지 접근해야 하기 때문에 사용자가 많아지면 속도가 느려진다. 일반적을 서비스 운영 초반이나 규모가 작은, 사용자가 많지 않은 서비스의 경우에는 크게 무리가 가지않는다. 하지만 사용자가 늘어난다면 데이터 베이스가 과부하 될 위험이 있기 때문에 캐시 서버를 도입하여 사용한다. 그리고 이 캐시서버로 이용할 수 있는 것이 바로 REDIS이다.
캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결과값을 받을 수 있도록 도와주는 공간이다. 같은 요청이 계속 들어오는 경우 매번 데이터베이스까지 가는 것이 아니라 캐시 서버에서 첫 번째 요청 이후 저장된 결과값을 바로 보내주기 때문에 데이터베이스의 부하를 줄이고 서비스의 속도도 느려지지 않는 장점이 있다.

특징

  1. Key, Value 구조이기 때문에 쿼리를 사용할 필요가 없다.
  2. 데이터를 디스크에 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 속도가 빠르다.
  3. String, Lists, Sets, Sorted Sets, Hashes 자료 구조를 지원한다.
  4. Single Threaded 이다.
    Single Threaded => 한 번에 하나의 명령만 처리할 수 있다.(일꾼이 한명이다.) 그렇기 때문에 중간에 처리 시간이 긴 명령어가 들어오면 그 뒤에 명령어들은 모두 앞에 있는 명령어가 처리될 때까지 대기가 필요하다. (하지만 get, set 명령어의 경우 초당 10만 개 이상 처리할 수 있을 만큼 빠르다.)

주의할 점

  1. 서버에 장애가 발생했을 경우 그에 대한 운영 플랜이 꼭 필요하다.
    인메모리 데이터 저장소의 특성상, 서버에 장애가 발생했을 경우 데이터 유실이 발생할 수 있기 때문이다.
  2. 메모리 관리가 중요하다.
  3. 싱글 스레드의 특성상, 한 번에 하나의 명령만 처리할 수 있다. 처리하는데 시간이 오래 걸리는 요청, 명령은 피해야 한다.

0개의 댓글