본문 바로가기

redis

(4)
분산락을 적용해보자 (Redisson) 풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson - 컬리 기술 블로그 (kurly.com) 풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson 어노테이션 기반으로 분산락을 사용하는 방법에 대해 소개합니다. helloworld.kurly.com Redis의 Redisson 라이브러리 선정 이유 분산락은 Redis, Mysql, Zookeeper 등 여러가지 방법을 통해 구현할 수 있는데, Mysql 같이 DB에서 직접 락을 구현한다면 별도의 커넥션 풀을 관리해야 하고, 락에 관련된 부하를 RDS에서 받는다는 점에서 Redis를 사용하는 것이 더 효율적일 수 있다. 또한 Redisson은 일반적으로 많이 쓰는 Lettuce와 비교했을 때, 락 ..
레디스의 자료구조 Redis 데이터 타입(Collection) Redis의 장점 중 하나는 Key-Value 스토리지에서 Value에 단순한 Object가 아니라 String, Set, Sorted Set, Hash, List 등 다양한 타입을 지원하는것이다. 따라서 레디스의 자료구조를 알아보자 Strings 일반적인 문자열 최대 512 MB, String으로 될 수 있는 binary data나 JPEG 이미지도 저장 가능 단순 증감 연산에 좋다. string-string 매핑을 이용하여 연결되는 자료 매핑을 할 수도 있다. HTML 매핑도 가능 Bitmaps Strings의 변형 bit 단위 연산 가능 2^32 bit까지 사용 가능하다. 저장할 때, 저장 공간 절약에 큰 장점 List array 형식의 데이터 구조. 데..
대기열을 이용한 선착순 쿠폰 발행 레디스를 이용한 기프티콘 선착순 이벤트 구현 (velog.io) 레디스를 이용한 기프티콘 선착순 이벤트 구현 이번 포스팅은 레디스에서 제공해주는 자료구조 중 하나인 Sorted Set을 간단하게 설명하고, Sorted Set을 이용해서 치킨 기프티콘 선착순 이벤트를 구현해봅니다. 1. 왜 레디스으로 구현해야하나? velog.io 해당 코드를 그대로 구현한 후 주석처리하면서 공부한 기록 /** * Redis 연결을 설정하는 설정 클래스. * RedisProperty 클래스에서 Redis 속성(host, port)를 읽어 온다. * Lettuce를 사용하여 RedisConnectionFactory 빈을 정의한다. * RedisTemplate 빈을 정의하는데 이는 Redis와 상호 작용하기 위한 고수준 추상화..
캐시와 레디스 캐시 캐시란 자주 사용하는 데이터를 미리 보관해둔 임시 장소를 의미 캐시는 비교적 저장 공간이 적고 전체적인 비용이 비쌈(hdd, db에 비해) 대신 빠른 IO를 통해 성능적 이점을 가져올 수 있음 일반적으로 아래와 같은 특징들을 가지고 있는 데이터에 대해 캐시를 사용하면 좋음 도중에 변경될 일이 없는 데이터베이스 조회 값(ex. Id) 자주 호출되는 데이터 스프링 부트에서의 캐시 스프링 부트에서 사용할 수 있는 캐시는 대부분 JSR-107을 따름 JSR이란? java Specification Requests의 줄임말로, 자바 플랫폼에 대한 규격을 제안하거나 기술한것을 의미 그 중 JSR-107은 JCache(Java Temporary Caching API)에 관한 내용 JSR-107을 따르는 캐시를 사..