Redis

eomprgrm·2023년 4월 17일
0

1. Redis란?


Redis는 메모리 기반의 데이터 저장소이다. 데이터를 저장하고 불러오는 속도가 매우 빠르기 때문에 캐싱, 세션 관리, 메시지 브로커, 대기열 등 다양한 용도로 사용된다.

Redis는 NoSQL 데이터베이스이며 Key-Value 저장소 모델을 따른다.

2. Redis를 사용하는 이유


Redis는 인메모리 데이터 구조이며 컴퓨터의 메인 메모리(RAM)에 데이터를 올려서 사용한다. 이 방식은 보조 저장 장치(HDD, SSD)에서 데이터를 끌어다 사용하는 방식에 비해 굉장히 빠른 속도를 보인다. 이러한 점에서 알 수 있듯이, Redis를 사용하면 I/O 작업을 발생시키지 않기 때문에 사용자가 많은 환경에서 성능적인 이점을 얻을 수 있다. 또한 스프링 프레임워크와 같은 웹 개발 환경에서 Redis를 사용하여 사용자의 세션을 관리할 수도 있다.

3. Redis 특징


Redis의 가장 중요한 특징은 싱글스레드로 동작한다는 것이다. 따라서 Atomic한 성질을 가진다. 실제 명령어 동작은 패킷 단위로 전달되며 패킷이 쌓여 명령 커맨드가 완성되면 명령을 실행한다.

4. Redis를 통한 HTTP 요청 과정


일반적으로 캐시(cache) 매커니즘과 동일하다. 사용자의 요청을 처리하여 응답하는 과정에서 데이터베이스에 I/O 작업을 하기 전, Redis를 통해 캐싱되어 있는지 확인하고 데이터가 캐싱되어 있다면 빠르게 응답할 수 있는 구조이다.

5. Redis 데이터 구조


Redis는 Key-Value 형태의 데이터 저장소이며, 단순 문자열 뿐 아니라 다양한 종류의 데이터 구조를 지원한다.

  • 문자열 (String)
    • 가장 기본이 되는 데이터 구조이다 문자열을 저장할 수 있고, 문자열 뿐 아니라 정수, 부동소수점 숫자로 저장할 수 있다.
  • 해시 (Hash)
    • Key-value 구조를 가지는 데이터 구조이다.
  • 리스트 (List)
    • Linked List 구조를 가지는 데이터 구조이다. 데이터의 순서를 보장하며 앞이나 뒤쪽에 값을 추가하거나 삭제할 수 있다.
  • 셋 (Set)
    • 집합 구조를 가지는 데이터 구조이다. 데이터의 중복을 막을 수 있다.
  • 정렬셋 (Sorted Set)
    • Set 구조에서 각 요소에 Score를 부여하여 저장하는 구조이다. Score로 정렬이 가능하며 범위 연산도 지원한다.

Reference

https://architecturenotes.co/redis/
https://brunch.co.kr/@skykamja24/575
https://wildeveloperetrain.tistory.com/21
https://zangzangs.tistory.com/72
https://www.itpanther.com/redis-transactions/

profile
오늘의 학습을 기록하는 공간

0개의 댓글