Redis

진성·2022년 8월 11일
0
post-thumbnail

Redis?

레디스(Redis)란 Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템이다.
데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를가진 저장소이다.

Redis를 알아보기 전에 알아야할 것이 있는데 바로 캐시 서버이다.

Cache Server

캐시는 한 번 읽어온 데이터을 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결과값을 받을 수 있도록 도와주는 공간이다.

같은 요청이 여러 번 들어오는 경우 매번 데이터 베이스를 거치는 것이 아니라 캐시 서버에서 첫 번째 요청 이후 저장된 결과값을 바로 내려주기 때문에 DB의 부하를 줄이고 서비스의 속도도 느려지지 않는 장점이 있다.

이러한 캐시 서버를 이용할 수 있는 것이 Redis이다.

Redis 특징

  • key, value 구조이기 때문에 쿼리를 사용할 필요가 없다.
  • 데이터를 디스크에 쓰는 구조가 아닌 메모리에서 데이터를 처리하기에 속도가 빠르다.
  • String, Lists, Sets, Sored Sets, Hashes 자료 구조를 지원한다.
    • String: 가장 일반적인 key - value 구종의 형태이다.
    • Sets: String의 집합, 여러 개 값을 하나의 value에 넣을 수 있다.
    • Sored Sets: 중본된 데이터를 담지 않는 Set 구조에 정렬 Sort를 적용한 구조이다.
    • Lists: Array 형식의 데이터 구조, List를 사용하면 처음과 끝에 데이터를 넣고 빼는 것 빠르지만 중간에 데이터를 조작하는 것을 어렵다.
  • Single Threaded 이다.

    Single Threaded
    싱글 스레드는 한 번에 하나의 명령만 처리 할 수 있다.
    그렇기에 중간에 처리 시간이 오래걸리게 되면 뒤에 명령어 들을 앞에 명령어가 처리 될 떄까지 대기한다.

Redis 사용시 주의할 점

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

참고: Redis란? 레디스의 기본적인 개념

profile
풀스택 진행중...

0개의 댓글