[Redis] 로그인세션, 이메일토큰

이정훈·2023년 3월 24일
0

Redis

목록 보기
1/5
post-thumbnail

1대 redis_01 200.200.200.81
로그인세션
이메일 인증
3대
redis_02 200.200.200.82
redis_03 200.200.200.83
redis_04 200.200.200.84
마스터만 클러스터 구성
6대
마스터 + 슬레이브 클러스터 구성

redis

  • 인 메모리 데이터에이스, 캐시 저장소
    캐시란? 한번 읽어온 데이터를 메모리에 저장하여 다음에 읽을 때는 빠르게 결과값을 받을 수 있도록 하는 공간
  • 데이터를 디스크에 저장도 가능한데 설정을 해줘야한다. 데이터가 얼만큼 쌓이면 저장, 시간 마다 저장 등등
  • 메모리 저장이여서 비휘발성일지라도 디스크에 저장하여 영속성을 부여하기도 한다.
  • 저장방식은 key-value 구조로!
  • Single Threaded를 사용하므로 한번에 하나의 명령만 수행이 가능하며 오랜시간이 걸리는 명령을 사용할 경우 장애가 발생
    한번에 하나씩만 일을 처리한다 순차적으로 빈번하게 데이터를 쓰고 읽고 및 휘발이 되어도 상관없는 친구들을 사용하자
  • 대표적으로 로그인 세션
    만약 로그인 세션이 날라가면 로그아웃 그냥 다시 로그인 하자!
  • 카프카처럼 및 메세지 브로커로 사용이 가능하다(pub-sub 모드)
    아주상세한 설명!
  • 설치
yum -y install redis
systemctl restart redis
  • 설정
vi /etc/redis.conf
		bind 0.0.0.0
  • 간단한 명령어
    접속
	redis-cli -h [서버 IP]

    데이터 저장
	SET [Key] [Value]

    데이터 조회
	KEYS *

	GET [Key]

    데이터 삭제
	DEL [Key]

로그인 세션 저장

  • 기존 프로젝트를 이용하였다.
  • 로그인하면 mysqld에 세션값이 저장된다.
SESSION_ENGINE = "django.contrib.sessions.backends.cache"


CACHES = {
   'default': {
       'BACKEND': 'django.core.cache.backends.redis.RedisCache',
       'LOCATION': 'redis://200.200.200.81:6379',
        }
}

이메일 인증하고 로그인하기

pip install django-allauth
  • 장고의 로그인 기능을 편하게 해주는 라이브러리 이다.


  • 이메일 인증을 받으면 0 → 1로 변경

  • 로그인 인증 세션을 저장해주기도 한다.

  • 위의 세션 엔진을 캐시로 설정을 해주었기에 데이터베이스에는 이메일인증 로그인세션 등의 정보는 저장되지 않는다.

  • 시간이 지나면 이메일인증 토큰은 사라지고 로그인 세션만 남은것을 확인

profile
싱숭생숭늉

0개의 댓글