Redis를 활용한 효율적인 조회수 관리 방법
·
개발 하나둘셋/Java & Spring
오늘은 Redis를 활용하여 조회수를 관리하는 기능을 구현해보려고한다. 부끄럽게도 기존에는 사용자가 거의 없기 때문에 DB로만 관리해왔다. 이 글을 통해 기존 방식에서 Redis로 변경한 이유와 그 과정에 대해 기록해보고자 한다. 1. 기존의 DB 방식에서 문제점 기존에는 데이터베이스를 사용하여 조회수를 관리했다. 사용자가 웹 페이지를 조회할 때마다 해당 페이지의 조회수를 1씩 증가시키는 방식이었다. 하지만 이 방식에는 문제점이 있다. 동시성 문제: 여러 사용자가 동시에 같은 페이지를 조회할 경우, 조회수의 정확성을 보장하기 어렵다. 동시에 조회수를 업데이트하려다 보면 한 사용자의 조회가 누락되는 경우가 발생할 수 있다. 데이터베이스 부하: 조회수 업데이트는 매우 빈번한 작업이다. 많은 사용자가 활동하는..
Spring에서 Redis Sorted set으로 인기검색어 순위 나타내기
·
개발 하나둘셋/Java & Spring
개념정리 Spring에서 Redis Sorted set으로 인기검색어 순위 나타내기 redis의 Sorted set을 이용한 인기검색어 순위 구현. 색인이라던지 다른 기능없이 단순 검색어 순위 나열이다. 기존에는 검색어를 전부 db에 저장하여 가장 개수가 많은 검색어 10개를 출력하는 식으로 구현했었지만 Sorted set을 이용하여 캐시에 검색어를 저장하고, 검색을 할 때마다 검색어별로 score를 하나씩 추가하였다. 그리고 score를 기준으로 상위 10개만 출력하도록 구현하였다. 1. Redis Sorted set 1-1. Sorted set 이란? Redis에서 제공해주는 자료구조 중 하나인 Sorted Set(또는 ZSET, 둘다 동일한 말이다)은, 이름 그대로 Set의 특성을 그대로 가지면서 ..
SpringBoot기반 Redis Cache
·
개발 하나둘셋/Java & Spring
개념정리 SpringBoot기반 Redis Cache 실전프로젝트 시작 후 3주 동안 기본적으로 구상했던 기능들은 모두 구현하였다. 중간발표 후 성능에 대해 깊이 생각하지 않았던 것을 깨닫고 트래픽이 몰렸을 때 성능을 향상시킬 수 있도록 개선 중이다. 여러 부분 중 카테고리와 검색 시 로딩을 빠르게 하기위해 레디스의 캐시를 활용할려고 한다. 또한 검색어 랭킹 부분도 일일이 검색어를 DB에 저장해서 가장 많은 검색을 한 검색어 10개를 뽑아 냈는데 이부분도 캐시를 활용해 고쳐보자한다. 1. Cache의 개념과 특징 캐시란? 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에..
유리코딩
'Redis' 태그의 글 목록