[데이터베이스] Redis란?

2025. 2. 6. 09:54·데이터베이스
728x90
반응형
SMALL

1. Redis란 무엇인가?

Redis(REmote DIctionary Server)는 오픈 소스, 인메모리 데이터 저장소로 주로 캐싱, 세션 저장소, 메시지 큐 및 실시간 데이터 분석 등에 사용됩니다. 일반적인 RDBMS와 달리 데이터를 메모리에 저장하여 매우 빠른 속도로 읽고 쓸 수 있는 것이 가장 큰 특징입니다.

Redis의 주요 특징

  • 인메모리 데이터 저장소: 모든 데이터를 RAM에 저장하여 빠른 데이터 접근이 가능
  • Key-Value 구조: 다양한 데이터 타입(String, List, Set, Hash 등) 지원
  • 퍼시스턴스(Persistence) 지원: AOF(Append Only File) 및 RDB(Snapshot) 방식으로 데이터를 디스크에 저장 가능
  • 분산 처리 지원: 클러스터 모드 및 복제 기능 제공
  • 다양한 언어 지원: Python, Java, JavaScript, C++, Go 등 여러 언어에서 사용 가능


2. Redis 설치 및 실행 (Ubuntu 기준)

1) Redis 설치

sudo apt update
sudo apt install redis-server -y

2) Redis 서비스 실행 및 자동 시작 설정

sudo systemctl enable redis
sudo systemctl start redis

3) Redis 실행 확인

redis-cli ping

 

출력 결과: PONG이 나오면 정상 실행된 것입니다.

 


3. Redis 기본 명령어

Redis는 CLI(Command Line Interface)에서 다양한 명령어를 사용할 수 있습니다.

1) 기본적인 Key-Value 저장 및 조회

redis-cli set mykey "Hello, Redis!"
redis-cli get mykey

출력 결과:

"Hello, Redis!"

2) 리스트(List) 다루기

redis-cli rpush mylist "Apple"
redis-cli rpush mylist "Banana"
redis-cli lrange mylist 0 -1

출력 결과:

1) "Apple"
2) "Banana"

3) 해시(Hash) 사용하기

redis-cli hset user:1001 name "Alice" age "25"
redis-cli hgetall user:1001

출력 결과:

1) "name"
2) "Alice"
3) "age"
4) "25"

4. Docker를 활용한 Redis 컨테이너 실행

Docker를 활용하면 Redis를 쉽게 컨테이너로 관리할 수 있습니다.

1) Redis 도커 컨테이너 실행

docker run --name redis-container -d -p 6379:6379 redis

위 명령어를 실행하면 Redis가 redis-container라는 이름으로 백그라운드에서 실행됩니다.

2) 실행 중인 Redis 컨테이너 확인

docker ps

 

출력 결과:

CONTAINER ID   IMAGE    COMMAND    CREATED      STATUS    PORTS          NAMES
xxxxxxxxxxxx   redis    "redis"    5 minutes ago   Up        6379/tcp       redis-container

3) Redis CLI 접속

docker exec -it redis-container redis-cli

위 명령어를 실행하면 Redis CLI에 접속하여 직접 명령어를 실행할 수 있습니다.


5. Redis를 어디에 활용할 수 있을까?

Redis는 다양한 분야에서 활용할 수 있습니다.

  1. 세션 관리: 로그인 세션을 관리하여 빠른 인증 처리 가능
  2. 캐싱 시스템: 자주 사용하는 데이터를 캐싱하여 속도 개선
  3. 메시지 큐: Pub/Sub 기능을 활용한 실시간 메시징 시스템
  4. 리더보드 시스템: 랭킹 시스템(게임, SNS 등)에 활용
  5. IoT 및 실시간 데이터 처리: 빠른 데이터 저장 및 분석 가능

필자도 Redis를 프로젝트 경험하면서 여럿 사용한 바 있다. 기술의 깊이 만큼 기능의 최대치를 효율적으로 적용 시켰다고 생각하지 않지만 신입개발자를 준비하는 나로써는 기술 사용경험 또한 중요한 나의 재산이라고 생각한다.

 

필자는 어떠한 기술을 적용시킬때 해당기술의 특성을 파악 후 그 특성을 잘 살릴 수 있는 기능에 접목을 시킨다.

아무런 생각 없이 써봐야지 하고 쓰는 것 보다 해당 기술의 특성을 먼저 파악한 후 해당 기능의 효율성을 극대화 시킬수 있도록 기술을 반영하는 개발자로 거듭나자! 

 

728x90
반응형
LIST

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

[MSSQL] MSSQL 기초 사용법 (쿼리, 테이블 만들기, 트랜잭션)  (0) 2025.06.20
[데이터베이스] MSSQL이란? 마이크로소프트 SQL 서버 개념과 특징 정리  (0) 2025.06.20
Cosmos DB란?  (0) 2025.04.24
[데이터베이스] 데이터베이스 Index(인덱스)란?  (0) 2025.03.16
[데이터베이스] 오라클 공간함수 (SDO_GEOMETRY)  (2) 2025.02.07
'데이터베이스' 카테고리의 다른 글
  • [데이터베이스] MSSQL이란? 마이크로소프트 SQL 서버 개념과 특징 정리
  • Cosmos DB란?
  • [데이터베이스] 데이터베이스 Index(인덱스)란?
  • [데이터베이스] 오라클 공간함수 (SDO_GEOMETRY)
junhyeokkk
junhyeokkk
나의 개발자 성장기
  • junhyeokkk
    백엔드 개발자 준혁의 성장일지
    junhyeokkk
  • 전체
    오늘
    어제
    • 분류 전체보기 (59)
      • Flutter (13)
      • 개발환경구축 (3)
      • HTTP (0)
      • CS지식 (5)
      • 코딩테스트 (10)
      • JAVA (7)
      • 데이터베이스 (7)
      • Node.js (9)
      • TypeScript (1)
      • Azure (3)
      • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Typescript
    개발자
    node
    sql튜토리얼
    자바
    알고리즘
    데이터베이스
    db
    DART
    백엔드개발
    프로그래머스
    programmers
    CS지식
    RDBMS
    코딩테스트
    라이브러리
    MSsql
    Microsoft
    백엔드개발자
    Flutter
    node.js
    백엔드
    Java
    디자인패턴
    js
    개발자준비
    azure
    cosmos db
    nodejs
    마이크로소프트sql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
junhyeokkk
[데이터베이스] Redis란?
상단으로

티스토리툴바