DataBase/Redis (6) 썸네일형 리스트형 [Redis] EC2에서 Docker Compose 이용해 Redis, Spring Boot 띄워보기 1. EC2 내에서 사용할 Dockerfile, Docker compose 파일 만들기Dockerfile-prodFROM openjdk:17-jdkCOPY build/libs/*SNAPSHOT.jar app.jarENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "/app.jar"] compose-prod.ymlservices: api-server: build: context: . dockerfile: ./Dockerfile-prod ports: - 8080:8080 depends_on: cache-server: condition: service_healthy cache-ser.. [Redis] k6로 부하테스트 해보기 부하테스트란?서버에 요청이 몰려 서버가 터지진 않을까 하는 불안감을 없애기 위해서 서비스를 배포하기 전에 백엔드 서버가 어느 정도의 요청을 견딜 수 있는지 부하 테스트를 해봐야 한다.부하 테스트에서 서비스가 1초당 처리할 수 있는 작업량을 보고 Throughput이라고 부른다. 단위는 TPS(Transaction Per Seconds, 1초당 처리한 트랜잭션의 수)를 많이 활용한다. 만약 내가 만든 서비스가 1초에 최대 100개의 API 요청을 처리할 수 있다면, 이 서비스의 Throughput은 100 TPS라고 한다. k6란?성능 비교를 위해 k6라는 부하테스트 툴을 사용할 것이다. 부하테스트 툴에는 k6 이외에도 ngrinder, jmeter, ab, locust 등 다양한 툴이 있다. 하지만 그 .. [Redis] Spring Boot로 Redis 실행해보기 Spring Boot 프로젝트 세팅Board.java@Entity@Table(name = "boards")@Getter@Setterpublic class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String title; private String content; @CreatedDate @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonDeserialize(using = LocalDateTimeDes.. [Redis] Cache Aside & Write Around 전략 캐시란?캐시(Cache)란, 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미한다.참고로 캐시(Cache)라는 단어는 Redis에서만 쓰이는 용어는 아니고 전반적인 개발 분야에서 통용돼서 쓰인다. 캐싱(Caching)이란?캐싱(Caching)이란 캐시(Cache, 임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식을 의미한다.현업에서는 아래와 같이 얘기하는 편이다.❓ “이 API는 응답 속도가 너무 느려서 캐싱(Caching) 해두고 쓰는게 어때?” 이 말을 풀어서 설명하자면 “API 응답 결과를 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소에 저장해두고 빠르게 조회할 수 있게 만드는게 어때?라는 의미이다.Cache Aside (=Look Aside, Lazy Lo.. [Redis] Redis 기본 명령어와 네이밍 컨벤션 현업에서 자주 활용하는 네이밍 컨벤션회사마다 여러가지 컨벤션이 존재하겠지만 딱 한가지만 기억하자.콜론(:)을 활용해 계층적으로 의미를 구분해서 사용한다. Exampleusers:100:profile : 사용자들(users) 중에서 PK가 100인 사용자(user)의 프로필(profile)products:123:details : 상품들(products) 중에서 PK가 123인 상품(product)의 세부사항(details)이런 식으로 컨벤션을 정했을때의 장점가독성 : 데이터의 의미와 용도를 쉽게 파악할 수 있다.일관성 : 컨벤션을 따름으로써 코드의 일관성이 높아지고 유지보수가 쉬워진다.검색 및 필터링 용이성 : 패턴 매칭을 사용해 특정 유형의 Key를 쉽게 찾을 수 있다.확장성 : 서로 다른 Key와 이름.. [Redis] Redis(레디스)란 무엇인가? Redis 란?Redis는 Remote Dictionary Server의 약자로 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어이다.키(Key) - 값(Value) 쌍의 해시 맵과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템(DBMS)이며, 오픈 소스 기반으로 인-메모리(In-memory) 데이터 구조 저장소로 메모리에 데이터를 저장한다. 따라서 별도의 쿼리문이 필요로 하지 않고, 모든 데이터를 메모리로 불러와서 처리하는 In-Memory기반의 DBMS로 데이터베이스, 캐시, 메시지 브로커 등으로 사용되어지며, 주로 캐시 서버를 구현할 때 많이 사용된다. Redis의 특징 및 장단점레디스는 다음과 같은 다양한 자료 구조를 지원합니다.(Strings, JSON, Sets, List.. 이전 1 다음