[Redis] Redis 기본 개념 및 사용법

Turtle·2024년 8월 16일
0

TIL(Today I Learned)

목록 보기
4/7
post-thumbnail

🏷️Redis를 공부하게 된 이유

게시판 개인 프로젝트에서 조회 수를 처리하는 부분을 구현하면서 직접 DB에 액세스하는 것이 좋지 않다는 것을 알게 되었고 이를 개선하기 위해 Redis를 도입했는데 정작 왜 Redis를 써야 하는지 Redis가 무엇인지 제대로 알진 못하고 도입했던 느낌이 없지 않아 있어서 기본부터 공부해보고 추후 이를 활용한 프로젝트에서 사용하기 위해 Redis를 공부하게 되었다.

🏷️Redis란? Redis의 장점은?

  • Redis(Remote Dictionary Storage,레디스)는 모든 데이터를 메모리에 저장하고 조회하는 in-memory DB, 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반의 key-value 구조의 데이터 관리 시스템(DBMS)이다. 일종의 NoSQL이다.
  • RDBMS와 달리 Redis는 메모리에 데이터를 저장하기에 디스크보다 메모리에서의 데이터 처리 속도가 월등히 빠르다.

🏷️Redis 사용처

  • 캐싱(Caching)
  • 세션 관리(Session Management)
  • 실시간 분석 및 통계(Real Time Analystics)
  • 메시지 큐(Message Queue)
  • 지리공간 인덱싱(Geospatial Indexing)
  • 속도 제한(Rate Limiting)
  • 실시간 채팅 및 메시징(Real Time Chat and Messaging)
  • ...

🏷️Redis 설치

Github - Redis

✔️Windows 환경에서 Redis가 잘 설치되었는지 확인하기

  • Redis가 설치된 폴더에서 cmd를 실행시켜 redis-cli.exe --version 명령어를 입력하면 레디스 클라이언트의 버전을 확인할 수 있다.

  • Redis가 설치된 폴더에서 cmd를 실행시켜 redis-server.exe --version 명령어를 입력하면 레디스 서버의 버전을 확인할 수 있다.

🏷️Redis 기본 명령어

✔️데이터(키-값, Key-Value) 저장하기

set [key 이름] [value]

Ex1. set testKey1 testValue
Ex2. set testKey2 "test Value"	// 값이 띄어쓰기가 있다면 쌍따옴표 추가

✔️데이터 조회하기(Key로 Value 조회하기)

get [key 이름]

Ex1. get testKey1

✔️저장된 모든 Key 조회하기

keys *

✔️데이터 삭제하기(Key로 데이터 삭제하기)

del [key 이름]

Ex1. del testKey2

✔️데이터 저장 시 만료시간(TTL, Time To Live) 정하기

  • Redis는 RDBMS와 다르게 데이터 저장 시 만료시간을 설정할 수 있다.
  • 영구적으로 데이터를 저장하지 않고 일정 시간이 되면 데이터가 삭제되도록 세팅할 수 있다.
  • 레디스의 특성상 메모리 공간은 한정되어 있기 때문에 모든 데이터를 레디스에 저장할 수 없다.
  • 따라서 TTL을 활용해 자주 사용하는 데이터만 레디스에 저장해놓고 쓰는 식으로 활용한다.
set [key 이름] [value] ex [만료 시간(초)]

Ex1. set testKey testValue ex 10

✔️모든 데이터 삭제하기

flushall

🏷️Redis Key 네이밍 컨벤션

  • 콜론을 활용해 계층적으로 의미를 구분해서 사용
  • Redis 네이밍 컨벤션 예시
    • users:100:profile : 사용자들 중에서 pk가 100인 사용자의 프로필
    • products:123:details : 상품들 중에서 pk가 123인 상품이 세부사항

0개의 댓글