Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)이다.
data structures로
- Strings, set, sorted-set, hashes, list
- Hyperloglog, bitmap, geospatial index
- stream
이 사용가능
나중에 요청을 결과로 미리 저장해두었다가 빠르게 서비스 해주는 것을 의미한다.
- 클라이언트가 데이터를 요청
- 웹서버는 데이터가 존재하는지 Cache 서버에 먼저 확인
- Cache 서버에 데이터가 있으면 DB에 데이터를 조회하지 않고 Cache 서버에 있는 결과값을 클라이언트에게 바로 반환 (Cache Hit)
- Cache 서버에 데이터가 없으면 DB에 데이터를 조회하여 Cache 서버에 저장하고 결과값을 클라이언트에게 반환 (Cache Miss)
- 웹서버는 모든 데이터를 Cache 서버에 저장
- Cache 서버에 특정 시간 동안 데이터가 저장됨
- Cache 서버에 있는 데이터를 DB에 저장
- DB에 저장된 Cache 서버의 데이터를 삭제
- Strings
- List
- Set
- Sorted Set
- Hash
- Remote Data Store
A서버, B서버, C서버에서 데이터를 공유하고 싶을때- redis 자체가 Atomic을 보장해줘서(싱글 스레드)
- 주로 많이 쓰는 곳들
- 인증 토큰 등을 저장(strings 또는 hash)
- ranking 보드로 사용(sorted set)
- 유저 api limit
- 좌표 list