Redis

작성일

Redis란?

Redis는 NoSQL이며, 모든 데이터를 메모리에 저장하고 조회하는 인메모리 데이터베이스이다. Redis는 인메모리 DB의 장점인 빠른 성능 뿐만 아니라 다양한 자료구조를 가지고 있다는 장점이 있다. Redis와 다른 인메모리 DB와의 차이점이 다양한 자료구조를 가진다는 점이다.

Redis는 Key-Value 타입의 저장소로 별도의 쿼리 없이 Key를 통해 결과를 빠르게 가져올 수 있다.

1

Redis 특징

  • 영속성을 지원하는 인메모리 데이터 저장소
  • 읽기 성능 증대를 위한 서버 측 복제를 지원
  • 쓰기 성능 증대를 위한 클라이언트 측 샤딩 지원
  • 다양한 서비스에서 사용되며 검증된 기술
  • 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원. 메모리 저장소임에도 불구하고 많은 데이터형을 지원하므로 다양한 기능을 구현

✓ Redis는 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL이다.

Redis 영속성

Redis는 지속성을 보장하기 위해 데이터를 디스크에 저장할 수 있다. 서버가 내려가도 디스크에 저장된 데이터를 읽어서 메모리에 로딩한다. 데이터를 디스크에 저장하는 방식은 크게 두가지 방식이 있다.

  • RDB(Snapshotting) 방식
    • 순간적으로 메모리에 있는 내용을 디스크에 전체를 옮겨 담는 방식
  • AOP(Append On File) 방식
    • Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태

Redis 사용 예시

mac에서는 brew를 통해 redis를 설치할 수 있다.

brew install redis
redis-server # Redis Server 실행
redis-cli # Redis Client 접속

Redis 모든 Key를 삭제

flushAll

Key-Value 형식

set key1 "hello"
get key1
# 결과: hello

Reference

스프링 부트와 Redis 연동한 코드: Github 참고