[NoSQL] Redis 실무 적용 후기

Jinbro·2022년 7월 23일
0

NoSQL

목록 보기
1/1

Redis 는?

  • REmote DIctionary Server
  • In-Memory 메모리 기반의 data store
  • key-value 구조 데이터 관리 시스템
  • NoSQL : 비관계형
    쿼리 작성 없이 데이터 조회 -> 속도가 빠르다!
  • 다양한 Collection 사용 가능
    String, List, Set, Sorted Set, Hash 등
  • 데이터 저장 만료 시점 설정 가능 : Expire

문제인식

  • 대외기관 Was to Was https api 호출 시, 고객 정보로 인증된 접근토큰을 요청 공통 파라미터 설정 필요
  • 접근토큰 관리 방법 고민
    1) https api 호출할 때마다 토큰발급 API를 요청하는 것은 비효율적
    2) Frontend 에서 접근토큰을 관리하는 것은 용도에 맞지 않고, 보안 이슈 예상
    3) Backend 에서 RDB insert 는 짧은 주기의 데이터 삭제 프로세스가 필요

해결방법

  • Redis에서 접근토큰을 관리한다면?
    1) Redis에서 빠른 속도로 접근토큰 get 가능
    2) 접근토큰이 Backend 에서만 관리, 사용하기 때문에 보안 이슈 X
    3) 데이터 삭제 프로세스 고민 X => 만료 시간 설정 가능, 유효시간 설정을 통해 토큰발급 API 호출

로직구현

  • key : "고정문자열" + 고객고유번호
  • value : redis.get(key)
    1. null : 토큰발급 API 호출
    2. 유효시간 만료 : 토큰발급 API 호출
    3. 유효 : value 사용
  • redis.set(key, tknIsDto) : 토큰발급 API 호출 후

Redis 도입/운영 주의할 점

  • Redis는 In-Memory Data Store 이기 때문에, 물리적 memory 이상 사용 시 문제 발생
  • Maxmemory 설정하더라도 이보다 더 사용할 가능성 있음
  • Redis 적용 전 인프라팀 Redis 용량 산정 필수 (현재, 예상 MAU 정보)
  • Redis 모니터링 방법 도입 필수 ex) redisinsight

참고

Redis란 무엇일까?

profile
자기 개발 기록 저장소

0개의 댓글