- redis를 이용해서 가변성이 있는 데이터는 redis로 저장하여 사용하기
- 중복로그인 방지와 소셜로그인 할때 중복 이메일 있으면 어느 경로에서 가입했는지 알려주기
- 이메일인증번호는 필수 입력값으로 저장하기보다는 일회성 데이터라 가변성이 가볍기 때문에 선택
Redis란? 왜쓰는가.
오픈 소스로서 NoSQL로 분류되고, in-memory 솔루션으로 분류되기도 한다.
외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다.
디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다.
- 오늘 한일
이메일 인증과 토큰값을 redis에 저장하여 사용
이메일 인증은 한번만 쓰이기 때문에 발급이후 5분뒤에 삭제 해놓았다.
토큰값은 발급할때 유효한 시간 설정이랑 같게 해서 새로운 로그인자가 로그인을 하게 되면 처음 로그인한 사용자는 로그아웃 되게 로직을 짜보았다.
redis 사용기
const redisClient = redis.createClient({
url: `redis://${process.env.REDIS_USERNAME}:${process.env.REDIS_PASSWORD}@${process.env.REDIS_HOST}:${process.env.REDIS_PORT}/0`,
legacyMode: true,
});
redisClient.on('connect', () => {
console.info('🟢 Redis 연결 성공!');
});
redisClient.on('error', (err) => {
console.error('Redis Client Error', err);
});
redisClient.connect().then();
exports.redisCli = redisClient;
- Mysql Workerbench 처럼 Redis Desktop Manage를 이용하여 눈으로 관리할 수 있게 사용하고 있다.
- Redis 문법은 공부하여 redisCli, redisCli.v4 상황에 맞게 적용중