[DB] Redis의 특징

송하연·2024년 1월 29일
0
post-thumbnail

Redis(Remote Dictionary Server)


인메모리(휘발성) 기반의 데이터 베이스

  • 키-값(key-value) 기반의 NoSQL
  • 빠른 속도

Redis 구조


StandAlone: Redis

  • Redis 서버 1개
  • 서비스의 중단과 데이터 손실 위험, 로컬 환경에서 적합

Master/Replica

  • Master 역할을 하는 1개의 서버와 복제본인 Replica 다수
  • Replica은 읽기 전용임. Master에서 장애 발생 시 Replica 중 하나를 대체

Cluster

  • Master 역할을 하는 Redis 여러 개

Redis 명령어


종류역할
set데이터 저장
get저장된 데이터 조회
rename저장된 데이터 변경
randomkey저장된 key 중에 하나의 key를 랜덤하게 검색
keys저장된 모든 key를 검색
exists검색 대상 key 존재 여부 확인
mset/mget여러 개의 데이터 저장/여러 개의 데이터 검색
strlenvalue의 길이
flushall현재 저장되어 있는 모든 key 삭제
tll남은 시간 확인
incr/increbyvalue 1 증가/ 지정한 수 만큼 증가
decr/decrbyvalue 1 감소/ 지정한 수 만큼 감소
append현재 value에 추가
save현재 입력한 key/value 값을 파일로 저장
time데이터 저장 시간
infoRedis 서버 설정 상태 조회

Redis 장점


  1. 빠른 속도 및 성능

    • 인메모리 기반으로 빠른 읽기 및 쓰기 성능
  2. 다양한 데이터 구조 지원

    • Key-Value 형태뿐만 아니라 다양한 데이터 타입과 연산을 지원 (문자열, 해시, 리스트, 세트, 정렬된 세트, 비트맵 등)
  3. 스냅샷

    • 데이터를 디스크에 저장하고 주기적으로 스냅샷을 생성하여 데이터를 백업

      ⇒ Redis 서버가 재시작되더라도 데이터 손실 최소화


Redis 단점


  1. 메모리 제약 : 사용 가능한 메모리에 제약
  2. 단일 스레드 : 단일 스레드 모델을 사용하며 한 번에 하나의 명령어만 처리 가능
  3. 디스크 I/O 부족
  4. 일관성 보장의 어려움 : Redis의 분산 환경에서 일관성을 보장하기 어려울 수 있음
profile
개발 기록 끄적끄적✏️ #백엔드개발자

0개의 댓글