무지를 아는 것이 곧 앎의 시작

Redis 3

[Redis] 다건 조회를 캐싱할 때 고민했던 것들

최근 Redis를 사용해서 여러 조건절을 가지는 검색 쿼리의 응답을 캐싱해야하는 기술적인 과제를 겪었다. 꽤나 많은 고민과 주변의 도움으로 나름대로의 해결법을 도출해냈고 그 과정을 기록할까 한다. 문제 원인 일단 상황을 설명하면, 단건 id로 찍어서 조회하는 쿼리는 캐시하기 쉽지만 다건 조회는 신경쓸 포인트가 많아진다. 이유는 원본 데이터에 변경이 일어났을 경우 정합성 때문인데 캐시를 사용하게 되면 발생하는 고질적인 문제다. 단건 조회의 경우 id로 캐시의 key를 특정할 수 있기 때문에 조회시 캐시하고, 이후로 캐시된 값을 반환하고 변경이 발생하면 변경시 해당 캐시를 무효화하게 하면 정합성이 맞춰진다. 반면, 검색 조건이 여러 개가 들어가는 다건 조회의 경우 검색 조건까지 key에 넣고 결과를 캐싱하기..

Redis 2023.02.21

Redis 입문용 기본지식 채워봅시다

우아한테크세미나 191121 우아한레디스 by 강대명님 영상 토대로 작성한 내용입니다. Cache 레디스를 알기 전에 Cache에 대해 먼저 알 필요가 있다. 캐시는 나중에 요청올 결과를 미리 저장해두었다가 빠르게 서비스를 해주는 것을 의미한다. ex) Factorial같은 경우 10!을 계산한다면 1부터 10까지 다 곱하는게 아니라, 이전 값 즉 9!을 어딘가에 저장해두었다가 10만 곱해서 반환하면 된다. 즉 접근 속도에 이점이 있다. CPU Cache 메모리는 디스크보다 용량은 훨씬 적지만, 접근 속도는 디스크보다 훨씬 빠르다. 레디스는 이 메모리에 데이터를 저장한다. Cache 사용 패턴 Look Aside Server는 데이터가 존재하는지 Cache를 먼저 확인 Cache에 데이터가 있으면 Cac..

Redis 2022.10.26

Docker로 레디스 로컬 환경 간편하게 세팅하기

docker image 다운로드 docker pull redis:alpine pull 명령어로 이미지를 다운받는다. alpine은 태그를 의미하고 redis 버전 등의 값을 줄 수 있다.(생략시 latest가 붙음) alpine이 붙으면 이미지를 경량화시켜서 용량이 적다. docker로 실행 docker run --name redis-server -d -p 6379:6379 redis:alpine run 명령어로 docker container를 띄움. --name: container명을 지정. -d : 백그라운드로 실행 -p : host의 port와 container의 port를 매핑 맨 마지막에 이미지명:태그명 붙이면 됨 매번 위 과정이 귀찮을 것이다 docker-compose로 컨테이너를 띄우자 re..

Redis 2022.10.26