[DB] Redis - 인증, cache

호호빵·2023년 2월 18일
0

sunflowerProject

목록 보기
1/10

MySQL : 디스크 저장소
Redis : 인메모리 저장소

Redis

REmote + DIctionary + Server -> REDIS

  • 인메모리 데이터 구조 저장소로, 데이터베이스, 캐시, 메시지 브로커로 사용한다고 말한다.
  • Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템(DBMS)
  • 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소
    MySQL : 디스크 저장소
    Redis : 인메모리 저장소

사용 목적

  1. 인증
  2. 캐시

    캐시(cache)

    • 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다.
    • 캐시에 있는 데이터는 시간과 자원 면에서 최소한의 비용으로 반복적으로 접근 가능
    • Local Cache VS Global Cache
      -> redis는 Global Cache에 적합

redis 사용 이유를 크게 두가지로 나눌 수 있는데 이번 프로젝트에서 인증 정보를 저장하는 용도로 redis를 사용해보았다.

인증 정보 저장용 Redis

  • http 통신은 비상태성으로 이루어지는데 사용자의 로그인 상태를 유지할 수 있도록 세션과 토큰을 사용 (유저 인증 정보 저장)
  • 세션, 토큰을 저장하여 문제를 해결할때 Redis 저장소를 주로 사용

사용 방법

  • 세션 인증정보를 Redis 에 저장하기
    • 서버에 접속중인 사용자들의 세션정보를 Redis 에 저장 해둔다.
    • 서버 재시작시 사용자들이 모두 로그아웃처리 된다.
    • 하나의 세션을 하나의 요청만 받도록 할 수 있다. (즉, 한 계정으로 한 기기에서만 접속하게 제한 가능함)
  • 토큰 인증정보를 Redis 에 저장하기
    • 화이트 리스트 방법과 블랙 리스트 방법이 있다.
    • 화이트 리스트 : 세션정보처럼 로그인한 유저들의 토큰정보를 만료시간까지 저장한다.
    • 블랙 리스트 : 로그아웃한 유저들의 토큰정보를 만료시간까지 저장한다. (리프래쉬 토큰)
    • 하나의 토큰으로 여러번 요청할 수 있다. (즉, 한 계정으로 여러 기기에서 접속 가능함)




Reference

https://yonguri.tistory.com/82
https://bcp0109.tistory.com/328
https://dydtjr1128.github.io/redis/2019/04/03/Redis.html
https://server-talk.tistory.com/471 - redis란
https://zangzangs.tistory.com/72 - redis
https://devlog-wjdrbs96.tistory.com/375 - redis type
https://dejavuqa.tistory.com/155 - port

aws에서 redis 활용 - https://blossom6729.tistory.com/13
빼튜 Redis - https://www.notion.so/teamsparta/17-1348e72c39bd4620b00b5b0f78890082
security + jwt + redis 로그인 구현 - https://wildeveloperetrain.tistory.com/59

profile
하루에 한 개념씩

0개의 댓글