이룸 프로젝트
[이룸] 240225 refresh token 관리에 redis 도입
쿠마냥
2024. 3. 7. 15:02
- redis란 무엇인가?
개요
레디스(Redis)는 Remote Dictionary Server의 약자로서 '키-값'(key-value) 구조의 비 관계형 데이터를 저장하고 관리하기 위한 NoSQL의 일종이며 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 데이터베이스 관리 시스템 즉, DBMS다. Redis는 속도가 빠르고 사용이 간편하여 최고의 성능이 필요한 웹, 모바일, 게임, 광고 및 IoT 애플리케이션에서 널리 사용되고 있다.
특징
레디스는 NoSql & Cache 기반의 솔루션이며 메모리 기반으로 구성되어 있다. 메모리 기반인만큼 Redis를 shutdown하거나 서버에 전원 공급이 중지되면 레디스의 데이터는 날아간다. 따라서 레디스는 데이터를 영구 보존하기 위해서 AOF라는 방법을 제공한다. 여러 대의 서버 구성이 가능하며 데이터베이스로 사용될 수 있고 캐시로도 사용될 수 있다. 성능은 서버에 따라 다르나 초당 2~10만 회 정도의 수준이다. - redis 설치하기 (맥)
참조한 사이트: https://velog.io/@wonizizi99/DB-%EB%A7%A5%EB%B6%81%EC%97%90%EC%84%9C-redis-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9 - Redis 사용 vs Memcached
리프레시 토큰 개념을 활용하려면, 불가피하게 서버측에서 토큰 정보를 저장할 수 있는 곳이 필요하다. 사용하던 Mysql에 저장하기에는 중요한 데이터가 아니라고 판단했고, 조회시 쿼리문을 실행시켜야 하며 주기적으로 데이터를 삭제해 주어야 한다는 점을 고려하여 레디스를 사용하기로 결정했다. 현재는 MySQL에서 관리되고 있지만, 이후 Redis를 사용하는 쪽으로 리팩토링을 진행할 예정이다. Redis는 인메모리 상태에서 데이터를 처리하기 때문에, 다른 DB들보다 빠르고 가볍다는 장점이 있다.
현재 백엔드 개발자는 세 명. 세 명 모두 Redis 사용을 염두에 두고 있다. 나는 리프레시 토큰 관리를 위해, 팀원들은 각각 채팅 내역 관리와 get 요청 캐시를 위해 Redis를 도입하고자 한다. 이렇게 다양하게 활용하기 위해서는 Memcached보다는 다양한 데이터 타입을 지원하는 Redis가 더 적합하기 때문에, 공부를 더 한 후 바로 적용해 볼 생각이다.
[DB] 맥북에서 redis 설치 및 사용
launchd를 사용하여 Redis를 백그라운드에서 실행포그라운드에서 Redis를 직접 실행launchd를 사용하여 Redis를 백그라운드에서 실행하는게 더 좋은가?Redis를 포그라운드에서 직접 실행하거나 launchd를
velog.io