본문 바로가기

CS/데이터베이스

Redis 기초

반응형

 

Redis 기초

 

 

 

Redis란?(Remote Dictionaty Server)

Redis는 오픈 소스 인메모리 데이터 구조 저장소로, 주로 데이터베이스, 캐시, 메시지 브로커로 사용됩니다. 성능이 뛰어나고 다양한 데이터 구조를 지원하여 여러 가지 용도로 활용됩니다. Redis는 In-memory Databaes로 Key-Value구성을 가지고 있습니다. 또한 다양한 데이터 구조를 지원합니다.

 

 

Redis Opne Source

https://github.com/redis

 

Redis

Redis has 42 repositories available. Follow their code on GitHub.

github.com

 

 

Redis의 특징

  • 빠른 반응속도(Milliseconde Response)를 통한 응답
  • 높은 가용성(다양한 Data Type을 사용 가능)
  • Single Thread

 

빠른 반응속도(Milliseconde Response)를 통한 응답

Redis는 인메모리 데이터 저장소로 설계되었으며, 데이터는 메모리에 상주하고 필요에 따라 디스크에 스냅샷으로 저장하기 때문에 데이터 읽기/쓰기 속도가 매우 빠릅니다. 

 

 

높은 가용성

Redis는 다양한 타입을 지원합니다.

 

 

 

Single Thread

Redis는 싱글 스래드로 순서 보장되어 리스폰을 받을 수 있습니다. 이런 특징으로 병렬처리보다 복잡성을 줄일 수 있습니다.  또한 싱글 스래드이지만 초당 10만 건까지 지연 없이 처리가 가능합니다. 단, 싱글 스레드이기 때문에 단일처리만 가능하여 많은 시간이 소요되어 O(n)으로 처리되는 명령어는 사용에 주의가 필요합니다.

Redis 영속성

Redis는 주로 캐시로 사용될 때는 비영구적이며, 데이터가 메모리에만 존재할 수 있습니다. 이런 특성으로 Redis의 지속성을 보장하기 위해 데이터를 DISK에 저장할 수 있습니다. 


데이터를 DISK에 저장하는 방식은 크게 두 가지 방식이 있습니다.

  • RDB(Snapshotting) 방식
    • 주기적으로 데이터베이스의 전체 스냅샷을 디스크에 저장합니다.
    • 이 스냅샷은 특정 시점의 데이터를 포함하며, 시스템이 다시 시작될 때 이 데이터를 로드하여 복구합니다.
    • 데이터베이스 스냅샷 생성 시점 외에는 추가적인 디스크 작업이 없어 CPU나 디스크 사용량이 적습니다.
    • 스냅샷 생성 시점에는 CPU와 메모리 사용량이 증가할 수 있습니다.
  • AOF (Append On File) 방식
    • 모든 쓰기 명령을 로그 파일에 순차적으로 추가(append)하여 저장합니다.
    • 서버가 재시작될 때, AOF 파일을 재생하여 마지막 상태를 복구합니다.
    • 매우 짧은 간격(예: 매초 또는 매 쓰기 작업마다)으로 동기화할 수 있으므로, 데이터 손실 가능성이 적습니다.
    • 모든 명령을 기록하므로, AOF 파일 크기가 커질 수 있습니다.

정리

데이터 손실을 최소화하려면 AOF를 사용하는 것이 좋습니다. 데이터의 정확성과 무결성이 중요한 경우에 적합합니다.

시스템 리소스를 효율적으로 사용하려면 RDB를 사용하는 것이 좋습니다. 디스크 I/O를 최소화하고자 할 때 유리합니다.

 


Redis 설치 

터미널 명령어

// Redis Download
docker pull redis:6.2
// Redis Run
docker run --rm -it -p 6379:6379 redis:6.2
--rm 도커를 종료하면 컨테이너도 종료 
호스트의 6379 포트를 컨테이너의 6379 포트로 매핑 및 로컬 환경에서 해당 포트로 Redis 서버에 접근 허용

// Redis 성능테스트
docker exec -it Container ID  /bin/bash
redis-benchmark

 

Redis GUI

https://redis.io/insight/

 

RedisInsight - The Best Redis GUI

RedisInsight provides an intuitive and efficient graphical interface for Redis, allowing you to interact with your databases and manage your data.

redis.io

 

참고

https://estuary.dev/redis-data-types/

 

7 Redis Data Types: Commands & Data Structures Guide 2024

In this guide, discover the 7 key Redis data types and learn about the various commands and data structures to optimize your Redis database.

estuary.dev

 

https://redis.io/docs/latest/develop/data-types/

 

Understand Redis data types

Overview of data types supported by Redis

redis.io

 

 

 

반응형

'CS > 데이터베이스' 카테고리의 다른 글

JDBC 알아보기  (3) 2024.03.22
인덱스(index) 알아보기  (0) 2022.11.11