Redis (Remote Dictionary Server)
Redis 란?
1. 키-값 데이터 스토어
2. faster than RDS or document database like MongoDB
3-1. 운영 중인 웹사이트에서 키-값 형태의 데이터타입 처리 혹은
3-2. I/O가 빈번히 발생해 다른 저장 방식 사용시 효율이 떨어지는 경우 사용
such as 조회수 count
3-3. Mostly 사용자의 세션 관리
4. Data Type : String, Hash, List, Set...
5. 한 번 생성한 키를 선택적으로 삭제하기 어려움. -> 키가 영원히 쌓이는 방식
*** 삭제 방법 : 일괄 삭제 OR 일정 시간 이후 삭제 OR 기간 만료 후 삭제 (EXPIRE 커맨드로 기간 만료 시간 설정)
6. 오픈 소스 : 다양한 서비스에서 레디스를 자유롭게 사용 중
7. redis는 인메모리( In-memory) 데이터베이스
8. 모든 데이터를 메모리에 저장하고 조회
9. 메모리 접근 is faster than 디스크 접근
10. redis의 list는 linked list
11. 생산자 - 소비자 (Pub-Sub) 패턴
12. 싱글스레드로 동작
-> 데이터의 Atomic함을 보장
13. 메모리에 설치된 인메모리 데이터베이스로 메모리 IO가 발생
14. Redis에서 병목현상 발생구간 : 메모리 또는 네트워크에서 거의 발생
15. 레디스의 스키마 : 데이터를 정규화하고 데이터의 row에 대해 일관된 레퍼런스를 가지게 해 줄 수 있는 용도
사용방법 1 )
로컬 환경에서 redis를 호출
인스턴스의 메모리가 있다면, 비용측면, 사용성 측면 better
사용방법 2 )
클라우드 서비스를 사용해 외부자원 사용
하나의 프레임워크 바인딩 사용 시, 여러 웹 서버들의 공유 메모리 역할