✅Redis를 써보고자 한 이유
2023.06.05 - [분류 전체보기] - 230603 실전프로젝트7 [Node.js/Nest.js_sort별 목록조회 api 보완]
프로젝트에서 user위치를 기준으로 주변 식당 목록을 조회할 때, 매번 main repository에 접근하는 것이 아니라
redis에서 캐싱된 data를 조회하는 방식을 쓰는 것이 효율적일 것 같았다.
✅Redis란 무엇이며 왜 쓰는가?
대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응하기 어려울 때가 있다. 그럴 때 기존 RDBMS와 차별적인 강점을 갖춘 DB 관리 프로그램들, 즉 Nosql을 찾게 된다.
NoSql 이란?
기존 RDBMS 방식을 탈피한 데이터베이스를 의미한다. RDBMS가 가지고 있는 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 가지고 있다. 문서, 그래프, 키 값, 인 메모리, 검색을 포함해 다양한 데이터 모델을 사용한다.
Redis 란?
Nosql의 Key-value형태의 데이터베이스
키-값 데이터베이스는 각 항목에 키와 값이 포함되어 있는 보다 간한 유형의 데이터베이스이다. 값은 보통 키를 참조하는 방식으로만 검색이 가능하기 때문에 일반적으로 특정 키-값 쌍에 대해 쿼리를 수행하는 방법을 간단히 익힐 수 있다. 키-값 데이터베이스는 대량의 데이터를 저장해야 하지만 검색을 위해 복잡한 쿼리를 수행할 필요가 없는 사용 사례에 적합하다. 일반적인 사용자 선호도 저장 또는 캐싱에서 사용된다.
✅Redis의 데이터 구조
레디스는 관계형 데이터 베이스가 아니므로, VARCHAR, INT, DATETIME등을 지원하지 않는다.
- 문자열 (String) : 거의 대부분의 데이터를 문자열로 표현한다, 숫자, 날짜 및 시간등을 문자열로 저장한다.
- 해시 (Hash) : 해시는 필드를 가질 수 있다, 사용자 정보라는 hash가 있다면 이메일과 닉네임을 가질 수 있다.
- 리스트 (List) : 연결리스트(Linked list) 배열의 왼쪽, 오른쪽에 엘리먼트를 추가할 수 있다.
- 셋 (Set) : 리스트와 유사한 특징을 보이지만 고유값(Distinct value)를 저장한다는 점에서 차이점이 있다.
대표적인 레디스 사용법
- 로컬 환경에서 레디스를 호출한다. AWS EC2에서 인스턴스에 레디스를 설치, 인스턴스 메모리를 사용하여 레디스를 사용한다. 인스턴스의 메모리 여유가 있다면, 사용적, 비용적 측면으로 뛰어나다.
- 클라우드 서비스를 이용해 외부 자원을 사용한다. 레디스 랩(https://redislabs.com/)등의 서드파티 서비스를 사용해 레디스를 사용하게 되면 통신하는 웹 서버가 아무리 많아도 하나의 프레임워크 바인딩을 사용할 수 있다. 이 경우에 레디스는 여러 웹 서버들의 공유 메모리 역할을 감당할 수 있다
✅Redis 설치하기 + TUTORIAL
- Redis 다운로드 페이지로 이동하여 설치 프로그램 다운로드
- 다운로드/설치 완료 후 작업관리자 서비스 탭에서 확인
3. 설치 경로로 찾아가서 redis-cli.exe
4. ping 명령어를 입력하여 확인(pong)이 가능하다.
set 명령어로 데이터를 key-value 형태로 입력이 가능하며 get으로 조회할 수 있다.
5. 명령어(Command)
**참고문헌
https://kitty-geno.tistory.com/133
https://brunch.co.kr/@skykamja24/575
'필수 개발지식 > 개념정리, 유용한팁' 카테고리의 다른 글
[개발자 필수지식] 웹 브라우저에 URL을 입력하면 어떤 일이 생기나요? (0) | 2023.09.11 |
---|---|
PostgreSQL/Docker란 무엇인가? (feat.TypeORM) (1) | 2023.05.22 |
3계층구조에 Access/Refresh Token 적용하기! (0) | 2023.05.15 |
백엔드 개발자(Backend Developer)란? (0) | 2023.05.09 |
Joi, Javascript object schema validator (0) | 2023.05.05 |