본문 바로가기

Redis

Redis + Spring 설정 및 간단한 실습 Redis 환경 준비하기 환경: Unubunt 20.04 LTS Unubunt 20.04 LTS EC2 인스턴스에서 다음 명령어를 사용하여 Docker로 Redis 컨테이너를 구동한다. docker run -d -p 6379:6379 --name=redis redis 해당 명령어를 입력하면, 다음과 같이 구동 중인 Redis 컨테이너를 확인할 수 있다. 다음 명령어를 사용하여 redis-cli에 접속한다. docker exec -it redis redis-cli Spring Boot Project 환경: Spring Boot 2.7.5 build.gradle에 다음과 같은 dependency를 추가한다. implementation 'org.springframework.boot:spring-boot-sta.. 더보기
[Redis] Reids 내용 정리 Monitoring Metrics Redis는 많은 트래픽을 처리할 수 있기 때문에, Redis에 문제가 생기면 전체 성능 저하로 이어질 수 있다. 문제를 감지하고자 모니터링을 사용한다. Monitoring Metrics 수집 방법 info all 명령으로 Redis 자체에서 제공하는 Metrics를 확인할 수 있다. 대항목 항목 내용 memory used_memory_rss Redis가 현재 사용하고 있는 실제 물리 메모리 양, 실제 메모리 양이 많으면 Swap이 일어나서 성능이 많이 떨어진다. used_memory 현재 Redis가 계산하고 있는 사용 메모리 양, malloc의 값을 저장하고 있다가 보여준다. mem_fragmentation_ratio used_memory와 used_memory_rs.. 더보기
[DB] Redis란? In-Memory-Cache 데이터의 원본이나 원본 데이터를 통해 연산된 값을 메모리에 미리 저장(복사)해두는 것을 의미한다. 가장 많이 사용되는 In-Memory Key-Value Store는 다음과 같다. * Key-Value Store란 데이터를 지칭하는 Key와 이에 대한 데이터를 저장하는 Value 구조로 데이터를 저장하는 형태이다. * Key로 Value(데이터)를 찾을 수 있는 구조 Redis 많은 자료구조(Collection)을 제공한다. Replication을 제공해서 서비스를 더욱 안정적으로 사용할 수 있다. Cluster 모드를 제공한다. 메모리 단편화가 발생한다. Memcached Key-Value 형태만 제공한다. Redis에 비해 메모리 관리가 더 안정적이다. -> 자체적으로 C.. 더보기
Cache란? Cache 같은 요청에 대해서 같은 결과를 제공할 때, 시간이 오래 걸리거나 많은 리소스를 사용하는 작업에 대한 결과를 계산해서 In-Memory에 저장해두었다가 재요청이 오면 재계산 없이 바로 결과를 돌려주는 것. 계산, DB 접근 등 사용할 리소스와 거리를 줄여준다. 80%의 활동을 20% 유저가 하기 때문에 20%의 데이터를 캐시하면, 서비스의 대부분 데이터를 커버할 수 있다. (파레토 법칙) 유용한 케이스 적은 데이터가 비번하게 접근될 때 유용하다. 여러 데이터가 조금씩 다 접근하면 캐시의 효용성은 떨어진다. 리소스 별 속도 비교 리소스 속도 비교속도(ns) 비교 HDD I/O 1~10ms 1000000~10000000ns NVME SSD보다 100배 이상 느리다. NVME SSD I/O 7~15.. 더보기