Redis

EricHan·2022년 8월 25일
0

Redis는 REmote DItionary Server의 약자로

이름의 뜻 대로 Remote에 위치한 메모리들(데이터값)을 모아두고 필요할 때마다 쉽게 꺼내 쓸 수 있도록 도와주는 서버의 기능을 가지고 있다.

Redis의 특징

  1. NoSQL
    일반적인 관계형 데이터베이스와는 다른 형태로 데이터를 저장 및 검색하는 DB이며, 비 관계형 데이터베이스라고 표현하기도 한다.

기존에 관계형 DB에서는 쌓이는 데이터가 증가 할수록 빠른 데이터 처리를 위해 Scale up(수직적 확장: 성능 향상)을 택해 비용적인 부분에서 많은 부담이 있었는데 이런 점을 보완하기 위해 생겨난 방식이 Scale out (수평적 확장: 데이터를 분산하여 저장) 생겨났다.

이런 Scale out을 지향하는 데이터베이스를 NoSQL이라 부르며 NoSQL은 단순 검색 및 추가 작업을 위해 최적화 된 키 값 저장 공간으로, 레이턴시와 스루풋과 관련하여 이익을 내는 것이 목적을 가지고 있다.
NoSQL에도 여러 종류가 있지만 그 중 Redis는 Key-Value 형태를 가지고 데이터를 저자아고 있는 비 관계형 데이터 베이스 이다.

  1. In-Memory Database

    Redis는 Key-Value 형태의 데이터 모델을 저장하는 비 관계형 데이터베이스 이며, InMemory DB이다.
    InMemory DB란 데이터베이스가 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 이다.
    메인 메모리에 DB를 설치하는 이유는 디스크 접근이 메모리 접근보다 느리기 때문이며, 데이터 양의 빠른 증가로 기존 DB 응답 속도가 떨어지는 문제를 해결할 수 있는 대안으로써 작용된다.

  2. Redi에 저장되는 Data Type

Redis는 Key-value 형태로 데이터들이 저장되고 데이터를 가져올 때는
Key로 참조되는 Value타입을 다양하게 지정하여 저장할 수 있다.

크게 5가지 String, Set, Sorted Set, Hash, List 의 자료구조를 지원(5가지 타입으로 저장 가능)하고
서비스의 특성이나 상황에 따라 데이터를 캐시로 사용할 수도, Persistence Data Storage 로 사용할 수도 있다.

캐시(Cache)로 많이 사용되는 Memcached와 Redis는 데이터를 메모리에 저장하고 조회한다는 유사성을 가지고 있지만, Collection 제공의 유무에서 차이가 난다.



Redis Collection에서 지원되는 자료구조들

  • 1String : 가장 일반적인 형태로, key - value 로 저장하는 형태이다.

  • Set : 중복된 데이터를 담지 않기 위해 사용하는 자료구조이다. 중복된 데이터를 여러번 저장하면 최종 한번만 저장된다.
    이걸 사용했을 때 모든 데이터를 전부 다 갖고올 수 있는 명령이 있으므로 주의해서 사용해야 한다.

  • List : Array 형식의 데이터 구조이다. List 를 사용하면 처음과 끝에 데이터를 넣고 빼는건 속도가 빠르지만 중간에 데이터를 삽입하거나 삭제하는건 어려움이 있다.

  • Sorted Set : 유저 랭킹 보드서버 같은 구현에서 사용할 수 있다. 그럼 이때 데이터 삽입은 ZADD key 점수 value 명령어로 수행하고 정렬된 값은 zrange 를 통해 가져올 수 있다.

profile
desarollitor

0개의 댓글