[Redis] Redis는 무엇인가

울상냥·2023년 3월 21일
0

Redis

Redis는 Remote Dictionary Server의 약자로, 원격 Dictionary 서버로 직역할 수 있다.
NoSQL 데이터베이스로 Key-value 구조로 데이터를 저장할 수 있다.
Redis는 모든 데이터를 메모리에 저장하고 조회하는 인메모리 데이터베이스이기도 하다.

특징

  • 다양한 자료구조 지원
  • 영속성을 지원하는 인메모리 데이터 저장소
  • 메모리에서 데이터를 처리하여 속도가 빠르다
  • 읽기 성능 증대를 위한 서버 측 복제 지원
  • 쓰기 성능 증대를 위한 클라이너트 측 샤딩(Sharding) 지원

이러한 특징으로 캐시, 세션 스토어, 채팅 등에 활용된다.

메모리

Redis는 인메모리 데이터베이스로 컴퓨터의 메인 메모리인 RAM에 데이터를 올려 사용한다. 이에 빠른 속도가 장점이지만, 용량이 적다는 단점도 존재한다.
물리적인 메모리보다 더 많은 용량을 사용하려고 하면 문제가 발생하기 때문에 메모리 관리가 중요하다.

메모리 SWAP

메인 메모리가 부족할 경우 하드디스크에 SWAP 공간을 만들어 임시 저장하게 되는데 이때 레이턴시가 발생하게 된다.

메모리 단편화

RAM에서 메모리 단편화가 발생하게 될 수 있는데 다양한 크기의 데이터 사용을 줄이고 유사한 크기의 데이터를 사용하면 이를 줄일 수 있다.

Redis vs Memcached

Redis를 이야기 할 때 Memcached가 자주 비교되곤 하는데 둘의 차이를 알아보자.

  • 공통점

    • 1ms 이하의 지연 시간
    • 개발자의 사용 용이성
    • 데이터 파티셔닝
    • 광범위한 프로그래밍 언어 지원
  • 차이점

    Memcached 특징

    • 멀티스레드 지원

    Redis 특징

    • 다양한 자료구조 지원
    • 스냅샷
    • 복제
    • 트랜잭션
    • Pub / Sub Messaging
    • 루아 스크립트 지원
    • 위치기반 데이터 타입 지원

비슷한 기능을 지원하지만 Redis가 더 많은 기능을 지원하고 있다.
현재 많은 기업에서 Redis를 기본으로 사용하고 있고, 확장성을 고려하면 Redis가 좋을 수 있겠다.

profile
안되면 되게하라

0개의 댓글