본문 바로가기

Java/기술 스터디

REDIS란?

목차

    REDIS란?

    REmote DIctionary Server의 약어입니다.

    한줄로 설명하면 외부 Key-Value 형태의 서버를 말합니다.

     

    인 메모리 데이터 구조

    말 그대로 메모리(RAM)에 데이터를 저장합니다.

    외부 저장 장치(SSD, HDD)에 데이터를 저장하지 않고 메모리에서 데이터를 읽고 쓰기 때문에 속도가 빠릅니다.

     

    하지만 RAM은 용량이 작다는 단점이 있습니다.

    제 컴퓨터에는 8GB의 RAM이 2개, 총 16GB가 꽂혀 있습니다.

     

    이러한 용량으로는 메인 데이터베이스로 사용하기에 무리가 있습니다.

     

    REDIS의 장단점

    REDIS는 속도가 빠르다는 장점이 있지만 용량이라는 단점이 있었습니다.

    이러한 장단점으로 메인 DB로 사용하지 않고 보조적인 수단으로 사용되고 있기 때문에

    캐시 데이터베이스 서버로 적합합니다.

     

    CACHE

    캐시란 자주 사용하는 데이터나 값을 미리 복사해 놓은 임시 장소입니다.

     

    CACHE DB SERVER

    메인DB에 전체 사용자의 랭킹 정보가 들어있습니다.

    랭킹 100위의 정보를 꺼내야 할 때 메인DB에서 꺼내는 것보다 캐시DB에 100위의 정보를 저장해두면 더 빠르게 데이터를 가져올 수 있습니다.

     

    데이터 구조

    앞서 Key-Value 형태의 데이터 저장소라고 설명 드렸습니다.

     

    REDIS를 사용하면 사용자가 다양한 데이터 유형에 매핑되는 키를 저장할 수 있습니다.

     

    가장 기본적으로 사용되는 데이터 형태인 String은 텍스트나 이진 데이터를 저장할 때 사용합니다.

    문자열이 추가된 순서대로 유지되는 Lists of Strings,

    점수에 따라 정렬되는 Sorted Sets,

    필드와 값 목록을 저장하는 Hashes,

    데이터 세트에서 고유한 항목을 세는 HyperLogLogs가 있습니다.

     

    상위 랭킹 100위의 정보를 가져올 때는 Sorted Sets를 사용하면 되겠습니다.

     

    다양한 도구

    Pub/Sub

    메시지를 채널에 게시, 채널에서 구독자에게 전달합니다.

    => 채팅과 메시징 시스템에 매우 적합합니다.

    TTL (Time To Live)

    해당 기간 후에 스스로 삭제합니다.

    => DB를 불필요한 데이터로 채우지 않도록 합니다.

     

    주의점

    설계 때부터 인터넷에 연결될 목적으로 만들어지지 않았음

    인증 기술이 별도로 적용되지 않았기 때문에 DB에 민감한 정보를 저장하면 위험합니다.

     

    보안 업체 그룹IB가 지난 해 조사한 바에 의하면 DB 유출 사고가 발생했을 때, 사고 기업이 가장 많이 사용하고 있던 DBMSREDIS였다고 합니다.

     


    참고 자료

    REDIS란?
    https://aws.amazon.com/ko/elasticache/what-is-redis/
    https://zangzangs.tistory.com/72

    인 메모리 데이터
    https://2kindsofcs.tistory.com/40

    REDIS 개인정보 유출
    https://www.boannews.com/media/view.asp?idx=114594

     

     

    'Java > 기술 스터디' 카테고리의 다른 글

    스택(Stack) & 큐(Queue)  (0) 2023.12.10
    OSI 7계층  (0) 2023.10.16
    DTO & VO  (0) 2023.09.18
    ENUM  (0) 2023.09.17
    Cookie & Session  (0) 2023.08.14