티스토리 뷰
Cache는 나중에 요청될 결과를 미리 저장해두었다가 빠르게 서비스하는 것을 의미.
속도는 write back이 빠르지만 캐시메모리에 저장하기 때문에 장애가 생기면 데이터가 유실될 가능성이 생긴다. 로그를 DB에 저장할 때 캐시에 모았다가 특정 주기마다 DB에 저장하는데, 굉장히 많이 써야할 경우 redis같은 캐시에 넣고 특정 주기마다 DB에 저장하는 경우와 같이 write back이 쓰인다. 아니면 극단적으로 무거운 write 작업이 있을 경우.
Redis는 자료구조가 Atomic하기 때문에 Race Condition을 피할 수 있는 장점이 있다(반드시는 아님).
Redis는 여러 개의 서버에서 데이터를 공유하고 싶을 때(Remote Data Store), 인증 토큰 등을 저장(Strings 또는 hash), Ranking보드로 사용(Sorted Set), 유저 API Limit, 잡 큐(list)에 사용된다. Redis의 collection은 아래와 같다.
Strings | key와 value로 저장 |
List | 우리가 아는 그 리스트 |
Set | 중복X(중복되면 하나만) |
Sorted Set | score를 줘서 순서를 만듦 |
Hash |
하나의 컬렉션에 너무 많은 아이템을 담지 않도록 하는 것이 권장된다.(몇천개~10000개 정도) 그리고 Hash, Sorted Set, Set은 메모리를 많이 사용하므로 Ziplist를 사용하는 것이 권장된다.
출처는 우아한 테크 세미나 유튜브 영상이다. 더 많은 내용은 영상을 참고하시길.
300x250