redis는 단어의 의미에서 보면 외부에 key-value를 저장하는 서버를 말한다. Redis는 인메모리 데이터 구조 저장소로, 데이터베이스, 캐시, 메시지 브로커로 사용한다고 말한다.
인메모리란 컴퓨터의 메인 메모리 RAM에 데이터를 올려서 사용하는 방법을 말한다. 왜 메모리에 데이터를 올릴까? 이유는 명확하게도 속도 때문이다. SSD,HDD 같은 저장공간에서 데이터를 가져오는 것보다 RAM에 올려진 데이터를 가져오는데 걸리는 속도가 수백배(HDD 기준) 이상 빠르다. 때문에 Redis는 빠른 속도가 큰 장점이다. 하지만 edis는 빠른 속도를 자랑하는 대신 치명적인 단점이 있다. 바로 용량이다
즉 redis는 캐시 데이터베이스 서버, 인메모리 데이터 구조 저장소 (메시지 브로커)
여기서 캐시가 redis가 된다, look aside cache 기준으로
가장 먼저 캐시에 데이터가 있는지 확인하고,
데이터가 있으면 캐시 데이터 사용, 데이터가 없으면 실제 DB데이터 사용하고 DB데이터를 캐시에 저장
혹은 일정 기간동안 캐시에 저장하고, 저장된 데이터를 DB에 저장하는 write back도 있음
cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다. 캐시에 있는 데이터는 시간과 자원 면에서 최소한의 비용으로 반복적으로 접근
Local Cashe vs Global Cashe
1. Local 장비 내에서만 사용 되는 캐시
2. 여러 서버에서 Cache Server에 접근하여 사용하는 캐시
redis는 Global Cache에 적합함
Redis 는 key-value 형태의 데이터를 저장소이다. 즉, key 하나당 value를 저장하는 형태이다. redis는 단순히 string뿐만 아니라 다음과 같은 다양한 종료의 데이터 구조를 지원한다.
문자열(string)
해시(hashes)
리스트(list)
집합(sets)
정렬된 집합(sorted sets)
비트맵(bitmap)
하이퍼로그 로그(hyperloglog)
지리공간 인덱스(geospatial indexes)
스트림(streams)
활용 사례
단점, 주의사항
레디스 캐싱 전략, 읽기 및 쓰기
https://crazy-horse.tistory.com/139
출처 :
https://yong0810.tistory.com/52
https://zangzangs.tistory.com/72
https://brunch.co.kr/@skykamja24/575
https://yjam.tistory.com/50