Redis

훈이·2022년 10월 22일
0
post-custom-banner

Redis란???

레디스(Redis)는 Remote Dictionary Server의 약자로 Remote에 있는 In-Memory 데이터 구조를 가진 키 - 값 구조 데이터 관리 시스템이라고 할 수 있다. 레디스는 메모리(RAM)에 데이터를 저장하기 때문에 용량이 적고 데이터를 빠르게 가져올 수 있다.

레디스를 요약하자면 키 - 값 저장소로 여러가지 자료구조를 지원하는 NoSQL이라고 할 수 있다.

Redis의 특징

  • 속도가 매우 빠르다.
  • 메모리에만 저장하지않고 파일로도 저장하므로 저장된 시점으로 복구가 가능하다.
  • 엘라스틱서치와 같이 샤딩을 지원하므로 데이터를 분산해서 저장이 가능하다.
  • 만료시간을 설정하지 않으면 데이터 영구보존이 가능하다.
  • 다양한 자료구조를 지원한다.

Redis의 자료구조

  • String : 단순한 키 - 값의 1:1 구조이다.
  • List : 순서가 있는 String의 묶음이다, array형식의 데이터 구조이다.
  • Sets : 순서가 없는 String의 묶음이다, 중복되지 않는 array형식의 데이터 구조이다.
  • Sorted Set : Sets와 마찬가지로 순서가 없는 String의 묶음이지만 score를 통해 순위를 매겨 정렬이 가능하다.
  • Hash : 키 내부에 키 - 값이 존재하는 자료구조

    이미지 출처 : https://steady-coding.tistory.com/586

Redis의 패턴

Cache-Aside 패턴(빠른검색용)

  • 검색시 Redis에서 먼저 찾고 검색내용이 있다면 보여주고 없다면 데이터베이스 또는 엘라스틱에서 찾은 뒤 보여주고 그 내용을 Redis에 저장한다.
  • 두 번째 검색부터는 Redis에 저장된 정보를 보여주기 때문에 속도가 빠르다.

Write-Back 패턴(임시저장용)

  • Redis에 먼저 임시저장을 해놓은 뒤 데이터베이스에 저장한다.
  • 데이터베이스에 저장해야하는 데이터 양이 매우 많으면 디스크I/O가 발생하므로 Write-Back패턴을 사용한다.

참고한 사이트 :
https://blog.dalso.org/article/redis
https://pearlluck.tistory.com/724
https://steady-coding.tistory.com/586

profile
백엔드 개발자가 되자!
post-custom-banner

0개의 댓글