일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- JPA
- 배열
- 포트 폴리오
- 데이터 베이스
- Til
- docker
- 디자인 패턴
- LV0
- 프로그래머스
- LV01
- 이것이 자바다
- LV1
- 일정관리프로젝트
- 연습문제
- jpa blog
- 코테
- Lv.0
- 포트폴리오
- LV03
- LV.02
- mysql
- SQL
- Redis
- Spring Frame Work
- 네트워크
- Join
- LV02
- CoffiesVol.02
- Java
- 알고리즘
- Today
- Total
목록Redis (8)
코드 저장소.

목차1.문제 상황2.고안 3.적용 및 결과 1.문제 상황가게 정보를 직접 입력을 하는 것보다는 가게정보를 카카오맵에서 가져와서 정보를 다루는 것이 낫다고 해서 크롤링을 함. 기존의 방식은 사진과 같습니다. 이 방식에서 여러 문제가 있는데 보완을 해 볼점은 다음과 같습니다.한번 작업을 완료를 하는데 시간이 많이 걸림크롤링에서 가게가 중복으로 저장크롤링 작업시 예상치 못하게 작업이 중단된 경우 중단된 곳까지 저장이 됨.2.고안 우선은 현 상황에서의 문제점을 해결하기 위해서 다음과 같은 생각을 해봤습니다. 크롤링 작업 속도가 느리다.Redis를 사용해서 작업 동시에 가게 정보를 캐싱하기.크롤링에 중복으로 저장되는 가게내용크롤링 작업시 미리 csv파일을 만들어서 데이터 백업 겸 중복으로 저장을 하지 않게 1차로..

목차1.문제상황2.분산락?? 3.코드 및 검증 1.문제상황현재 내 프로젝트에서 자유게시글에서 조회수와 좋아요 기능과 가게 댓글에 좋아요 기능에서 게시글과 댓글에 좋아요를 눌렀을 경우 좋아요의 수가 제대로 카운팅이 되지 않는 상황이 발생을 했다. 현재 좋아요의 공통적인 로직은 다음과 같습니다. 좋아요 엔티티에서 좋아요 여부를 확인 -> 데이터가 없으면 좋아요 추가와 좋아요 수 증가-> 데이터가 있으면 좋아요 취소 좋아요 수감소 하지만 이 로직에서의 문제점은 다음과 같습니다. 1. 경쟁조건 여러 사용자가 동시에 같은 게시글이나 댓글에 좋아요를 누르거나 취소할 때, 다음과 같은 문제가 발생할 수 있습니다.중복된 좋아요/싫어요: 이미 좋아요를 누른 사용자가 다시 누르거나, 싫어요를 누른 사용자가 다시 싫어요..
목차1.Redis의 자료구조2.String3.List4.Hashes5.Sets6.Sorted sets 1.Redis의 자료구조Redis는 기본적으로 다야한 형태의 자료구조를 제공을 하고 있다. Redis의 자료구조는 다음과 같습니다.Strings : Vinary-safe한 기본적인 key-value 구조Lists : String element의 모음, 순서는 삽입된 순서를 유지하며 기본적인 자료구로 Linked List를 사용Sets : 유일한 값들의 모임인 자료구조, 순서는 유지되지 않음Sorted sets : Sets 자료구조에 score라는 값을 추가로 두어 해당 값을 기준으로 순서를 유지Hahses : 내부에 key-value 구조를 하나더 가지는 Reids 자료구조Bit arrays(bitMap..
목차1.Redis keys -> Scan2.코드 적용 1.Redis keys -> ScanSpring Data Redis에서 KEYS 명령어는 Redis에 있는 전체 키 목록을 가져옵니다. 하지만 KEYS는 몇가지의 문제점을 가지고 있습니다. 우선 KEYS의 문제점은 다음과 같습니다. 속도 저하 문제KEYS는 Redis에 있는 모든 key를 찾는 방식입니다. 키의 갯수가 많아지면 속도 저하에 문제가 생길 수 있습니다.블로킹KEYS의 경우에는 실행을 하는 동안에는 다른 요청을 할 수가 없기 때문에 성능에도 문제가 생길 수 있습니다.그럼 이러한 문제점을 해결을 하기 위해서 찾아본 것이 Redis에 SCAN이라는 명령어가 있어서 사용을 하게 되었습니다. Scan의 설명과 특징은 다음과 같습니다.설명:Scan명..

목차1.문제상황2.적용 1.문제상황서버가 한대인 경우에는 해당 서버에 세션 정보를 저장해서 사용을 할 수 있지만, 현재 진행중인 프로젝트의 경우에는 Scale-out을 적용한 환경에서는 세션 불일치 문제가 발생을 할 수 있습니다. 세션 불일치?웹 애플리케이션에서 사용자 세션의 상태가 일관되지 않거나 예상치 못하게 변경될 때 발생하는 문제를 세센 불일치라고 합니다. 세션 불일치를 해결하는 방식에는 크게 3가지가 있습니다. Stikcy-SessionSession-ClusteringSession-Storage 이중에서 제가 적용을 할 것은 Redis를 Session-Storage로 사용할 것입니다. 우선 Redis를 사용한 이유는 다음과 같습니다. 확장성: 모든 서버가 중앙 세션 스토리지(예: Redi..

목차1.문제점2.분리를 했을시의 이점3.적용 1.문제점현재 진행이 되고 있는 프로젝트(Coffies Vol.02)에서는 현재 하나의 Redis서버를 사용해서 Session과 Cache를 사용하고 있습니다. 하지만 댓글에 리뷰평점기능을 현재 redis를 사용해서 평점을 적고 있는데 평점이 많으면 많을수록 댓글 평점을 매번 SQL을 사용해서 적으면 성능에 저하가 일어날것이라고 예상이 되어서 이를 개선하고자 합니다.2.분리를 했을시의 이점우선은 Redis를 서버와 캐시 서버로 나누면 다음과 같은 이점이 있습니다.성능 최적화분리된 자원 관리: 인증 기능과 캐시 기능이 각각 독립된 환경(docker,localhost)에서 실행됨으로써, 각 기능이 필요로 하는 리소스를 개별적으로 최적화할 수 있습니다. 이는 전체 ..