[Redis] Redis의 다양한 자료구조와 활용 예시 알아보기
·
DB/Redis
0. 들어가기 전이전에 Redis에 대해서 간단하게 정리해봤었습니다.https://ksh-coding.tistory.com/127 [DB] Redis란?여러 프로젝트를 살펴보니, 인메모리 저장소로 Redis를 사용하는 것을 많이 볼 수 있었습니다.Redis가 무엇이고, 어떤 장점이 있길래 많이 사용하는 걸까요?프로젝트에 적용하기 전에 간략하게 Rediksh-coding.tistory.com 해당 글 이후에 여러 기능에서 Redis를 사용했고, 잘 동작하는 것을 확인할 수 있었습니다.그러나, Redis를 사용할 때 추상화된 Spring Data Redis를 사용하면서 어떤 자료구조로 저장되는지,어떤 자료구조가 해당 기능, 데이터에 적합한지, Redis에 어떤 자료 구조들이 존재하는지에 대해 모르고 사용했었..
[이슈] Redis 캐싱을 통해 조회 성능 개선하기
·
이슈 & 트러블 슈팅
0. 들어가기 전현재 프로젝트에서 자주 호출하는 '동선 기간 조회' API의 조회 성능을 높이기 위해 캐싱을 도입하기로 했습니다. 위의 페이지에서 다음과 같이 '동선 기간 조회' API 호출이 발생합니다.달력 페이지에서 동선 기간 조회 1달 간격으로 조회동선 보관함에서 월별 필터로 조회 해당 페이지들은 서비스에서 핵심적인 페이지들로 사용자들이 자주 사용할 것이라고 판단됐기 때문에,해당 페이지에서 호출되는 '동선 기간 조회' API의 조회 성능을 높이기 위해 '캐싱'을 도입했습니다. 이번 포스팅에서는 프로젝트에 캐싱을 적용한 과정을 담아보겠습니다!1. 캐싱이란?일반적인 CS 관점에서의 캐싱은 다음과 같이 말할 수 있습니다.캐시는 CPU와 RAM과 같이 느린 장치와 빠른 장치의 속도 차이로 인한 병목 현상을..
[이슈 & 트러블 슈팅] 동시성 보장하기 (feat. 비관적 락, Redis 분산 락)
·
이슈 & 트러블 슈팅
0. 들어가기 전현재 진행하고 있는 동선을 만드는 프로젝트에서 다음과 같은 요구사항이 존재했습니다.(동선 생성 시 선택한 태그의 태그 선택 횟수가 1씩 증가하는 로직 존재하는 상황)여러 사용자의 동선 생성 동시 요청 시에 태그 선택 횟수가 순차적으로 증가해야 한다. 위의 사진처럼 태그별로 선택 횟수가 표시되었습니다.해당 태그는 사용자들이 동선을 생성할 때 태그를 지정하면 선택 횟수가 1씩 증가하는 로직을 가지고 있습니다. 이러한 상황에서, 여러 사용자가 동시에 요청을 보내게 되면 현재 상황에서는 데이터 정합성이 보장되지 않은 상황이었습니다.멀티 스레드 테스트를 통해 테스트해봤을 때, 다음과 같이 테스트가 실패하는 것을 확인할 수 있었습니다.  그래서 이러한 동시성을 보장하기 위해서 여러 방법들을 생각해보..
[Redis] EC2 환경에서 Docker에 Redis 설치 후 실행하기
·
DB/Redis
개인 프로젝트에서 EC2 환경에서 Docker에 Redis를 설치할 일이 생겼습니다.다음에도 설치 과정을 구글링해서 찾아볼 것 같아서 기록용으로 기록해보고자 합니다! 설치 과정은 도커가 설치되어 있는 EC2 Linux 환경으로 진행되었습니다.1. 도커에 Redis 설치기본적으로 도커 자체에 Redis를 설치하는 것은 간단합니다. 1-1. Docker Redis Image 다운로드$ docker pull redis 1-2. 다운로드 된 Docker Image 확인$ docker images 2. Redis 추가 설정추가 Redis 설정 부분을 설정해봅시다. 2-1. Docker Volume 설정Redis는 in-memory 기반 저장소이기 때문에 Docker Container 내에서 실행 시 해당 컨테이너..
[Spring] Spring에서 Session 저장소로 Redis 사용하기(feat. Redis Session Clustering)
·
Spring
0. 들어가기 전 이전 포스팅에서 간략하게 Redis를 살펴봤었습니다. 이전 포스팅에서는 Redis의 장점으로 인메모리 저장소의 특성으로 인한 빠른 성능을 중점적으로 소개했습니다. 이번에는 Spring을 사용한 개인 프로젝트에서 Redis Session Clustering을 사용한 과정을 포스팅해보도록 하겠습니다! https://ksh-coding.tistory.com/127 [DB] Redis란? 여러 프로젝트를 살펴보니, 인메모리 저장소로 Redis를 사용하는 것을 많이 볼 수 있었습니다. Redis가 무엇이고, 어떤 장점이 있길래 많이 사용하는 걸까요? 프로젝트에 적용하기 전에 간략하게 Re ksh-coding.tistory.com 1. Session Clustering 앞에서 Session Clu..
[DB] Redis란?
·
DB/Redis
여러 프로젝트를 살펴보니, 인메모리 저장소로 Redis를 사용하는 것을 많이 볼 수 있었습니다.Redis가 무엇이고, 어떤 장점이 있길래 많이 사용하는 걸까요?프로젝트에 적용하기 전에 간략하게 Redis를 살펴보도록 합시다.1. Redis란?Redis는 Remote Dictionary Server의 약자로, Key-Value 형태로 데이터를 저장하는 원격 서버를 의미합니다.Redis 공식 홈페이지(https://redis.io/)에서는 Redis를 다음과 같이 간략하게 소개하고 있습니다. ‘Redis는 데이터베이스, 캐시, 메시지 브로커, 스트리밍 엔진으로 사용되는 오픈 소스의 인메모리 데이터 구조 저장소’ 여기서, Redis는 디스크나 SSD가 아닌 메모리에 데이터를 저장하는 인메모리 NoSQL Key..
BE_성하
'Redis' 태그의 글 목록