개발이 좋아서/Redis가 좋아서

AWS ElasticCache 활용하기
현업에서 EC2에 Redis를 설치해서 쓰지않고 ElastiCache를 쓰는 이유현업에서 EC2에 Redis를 직접 설치해서 사용하는 경우는 드물다. 일일이 Redis를 설치하고 셋팅하고 관리하면서 확장까지 하려면 신경쓸 게 생각보다 많다. 하지만 ElastiCache를 사용하면 셋팅도 쉽게할 수 있고, 확장도 쉽게 할 수 있고, 기본적인 모니터링 기능도 제공해주고, 장애가 날 가능성도 훨씬 적다. 이런 이유로 인해 현업에서는 ElasitiCache를 많이 활용한다. AWS ElastiCache 셋팅하기1. ElastiCache 서비스로 들어가기2. 캐시 생성을 위해 ‘지금 시작’ 버튼 누르기 3. 클러스터 설정에서 ‘구성’ 선택하기- 여기서 얘기하는 클러스터(cluster)란 여러 캐시 서버를 이루는..
Docker Compose로 Redis + Spring Boot 띄우기
1. Dockerfile 만들기FROM openjdk:17-jdkCOPY build/libs/*SNAPSHOT.jar app.jarENTRYPOINT ["java", "-jar", "/app.jar"] 2. compose.yml 만들기services: api-server: build: . ports: - 8080:8080 depends_on: cache-server: condition: service_healthy cache-server: image: redis ports: - 6379:6379 healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s ..
부하 테스트를 통해 Redis 적용 전 후 성능 비교하기
부하 테스트에서 서비스가 1초당 처리할 수 있는 작업량을 보고 Throughput이라고 부른다. 단위는 TPS(Transaction Per Seconds, 1초당 처리한 트랜잭션의 수)이다. 부하 테스트를 위한 환경 세팅 (k6)k6란?부하테스트 툴에는 k6 이외에도 ngrinder, jmeter, ab, locust 등 다양한 툴이 있다. 하지만 그 중에서 간단하고 빠르게 테스트 해볼 수 있는 툴인 k6를 활용하고자 한다. (실무에서도 많이 쓰임) k6는 사용자인척 요청을 보내는 툴이다.1. k6 설치하기2. 터미널 창에서 잘 설치됐는 지 확인$ k6 3. API에 부하를 주기 위해 k6 스크립트 작성script.jsimport http from 'k6/http';import { sleep } from..
AWS EC2에서 Redis 활용하기
EC2 생성성능 때문에 t3.a.small 이상으로 생성할 것을 권장보안 그룹 설정에서 8080번 포트 열어줄 것RDS 생성보안 그룹 설정에서 3306번 포트 열러줄 것EC2에 Redis 설치1. Redis 설치하기$ sudo apt update$ sudo apt install redis 2. 잘 설치됐는 지 확인$ redis-cli127.0.0.1:6379> pingPONG EC2에 Spring Boot 프로젝트 세팅1. JDK 설치하기$ sudo apt install openjdk-17-jdk 2. 잘 설치 됐는 지 확인$ java -version 3. application.yml 수정# local 환경spring: profiles: default: local datasource: ur..
로컬 환경에서 Spring Boot + Redis로 구현하기
기본 Spring Boot 프로젝트 세팅Spring Boot는 3.xx 버전MySQL 8.x 버전JDK 17application.yml# local 환경spring: profiles: default: local datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true Board 엔티티 만들기@Entity@Table(name = "boards")public class Board { @Id @Gene..
Redis 캐싱 전략
캐시(Cache)란?캐시(Cache)란, 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미한다. 캐싱(Caching)이란?캐싱(Caching)이란 캐시(Cache, 임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식을 의미한다. 데이터를 캐싱할 때 사용하는 전략(Cache Aside, Write Around)Cache Aside(= Look Aside, Lazy Loading)데이터를 조회할 때 주로 사용하는 전략이다.캐시에 데이터가 있을 경우 (= Cache Hit) : 데이터를 요청했을 때 캐시에 데이터가 있는 경우를 보고 Cache Hit라고 한다.캐시에 데이터가 없을 경우 (= Cache Miss) : 데이터를 요청했을 때 캐시에 데이터가 없는 경우를 보고 Cache M..
Redis란?
- Redis(Remote Dictionary Server) : 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다. Key-Value 형태로 저장. - 장점레디스는 인메모리(in-memory)에 모든 데이터를 저장한다.MySQL과 같은 RDBMS의 데이터베이스는 대부분 디스크(Disk)에 데이터를 저장한다. 하지만 Redis는 메모리(RAM)에 데이터를 저장한다. 디스크(Disk)보다 메모리(RAM)에서의 데이터 처리속도가 월등하게 빠르다. 이 때문에 Redis의 데이터 처리 속도가 RDBMS에 비해 훨씬 빠르다.- 주요 사용 사례캐싱 (Caching)세션 관리 (Session Management)실시간 분석 및 통계 (Real-time Analystics)메시지 큐 (Message Queue)지..