반응형 OpenSource/Redis6 DelayQueue란? (feat. Java표준, Redis) Blocking Queue&Delayed Queue세상에나 마상에나!Queue는 우리가 보통 pub/sub을 하는 블로킹 큐(Blocking Queue)와 블로킹 지연큐(Delay Queue) 2가지가 있습니다.Blocking Queue데이터가 Queue에 들어오는 즉시 Consumer가 가져갑니다.Queue가 비어 있으면 Consumer는 새로운 항목이 들어올 때까지 자동으로 대기(Blocking) 합니다.보통 Producer–Consumer 패턴, 작업 큐, 비동기 처리 등에 사용합니다.Delayed Queue(=지연 큐, DelayQueue)Queue에 항목이 들어왔더라도, 각 객체에 설정된 지연시간(Delay Time)이 지나야만 Consumer가 가져갈 수 있습니다.아직 지연시간이 남았다면 Co.. 2025. 11. 24. Redis에서 TTL이 expired(만료)되면 메모리에 데이터는 아직 있다? 없다? 동료들과 커피마시면서 이야기가 나온 내용인데 궁금해서 찾아보았습니다.정답은?! TTL 만료 != 즉시 메모리 해제Redis 메모리에는 존재하지 않는것 처럼 취급되지만 사실상 실제 메모리에서 삭제되는 것은 아니다!Redis는 TTL이 지난 키를 두 가지 방식으로 제거!1) Active Expiration(주기적으로 스캔) : Redis가 주기적으로 메모리를 스캔해서 만료된 키들을 삭제 serverCon이라는 내부에서 돌아가는 타이머 루프를 통해 스캔하고 제거하여 메모리를 관리 합니다. 2) Lazy Delete(게으른 만료) : 클라이언트가 GET/SET 등 키를 조회/갱신하려고 할 때 즉, 직접 접근 할 때 내부에서 만료체크를 하고 삭제를 진행 합니다. TTL이 만료된 key가 바로 삭제 되.. 2025. 11. 6. Redis Single Thread, 싱글인데 왜 빠르지?? MSA 아키텍처에서 Redis가 싱글쓰레드를 이용해서 처리가 되기 때문에 원자성(atomic)보장! 즉, 데이터 정합성이 깨지지 않습니다!그래서 커머스 같은 곳에서는 재고처리를 Redis로 하는데..그런데 말입니다! 잘나가는 커머스는 대용량 트래픽 일텐데 이걸 버텨낸다?? 싱글쓰레드인데? 왜 성능이 좋은지 살펴보도록 하겠습니다. Redis의 성능적 비밀은? Multiplexing / Event Loop사실 아니 어떻게 싱글쓰레드가 대용량 트래픽을 받는다는거지? 라는 의문이 생겨서 찾아보게 되고 포스팅을 하게 되었습니다.알고봤더니 다이렉트로 싱글 쓰레드가 받아서 처리하는 구조가 아니였습니다!!위 그림의 I/O Multiplexing을 살펴봅시다!1) 클라이언트 : A,B,C 클라이언트가 동시에 Redis .. 2025. 10. 28. Redis Cache 연동(Spring Boot) 학습 목표Spring Boot와 Redis를 연동하여 Application에서 Caching하는 방법을 학습Redis SettingRedis는 사내에서 제공되는 Redis를 사용! 우선 dev용으로 셋팅! SpringBoot + Redis Cache 연동Gradle Dependency// redisimplementation 'org.springframework.boot:spring-boot-starter-data-redis'RedisTemplate과 RedisCacheManager가 있는데 Cache는 RedisCacheManager를 사용 합니다.RedisCacheManager의 동작은 RedisCacheManagerBuilder를 사용하여 구성할 수 있으며, 이를 통해 기본 RedisCacheConf.. 2024. 8. 23. local에 Docker 기반 Redis 셋팅(feat. mac) ■ 우선 docker가 셋팅되어져있어야 한다. ■ docker명령어로 redis 이미지를 가져온다. docker pull or docker image pull docker pull redis:6.2.6 // 해당 버전을 가져오려면 redis:버전 docker image pull redis // 최신을 그냥 가져오려면 redis ■ 네트워크 리스트 확인 docker network ls NETWORK ID NAME DRIVER SCOPE 614b4249a627 bridge bridge local 3b3695c608b6 host host local a9a8dbbfa136 none null local ■ 네트워크 설정 docker network create redis-net redis-cli도 같이 구동해서 통.. 2022. 4. 12. redis 메모리 사용량? http://redis.io/topics/quickstart redis 관련 정보를 얻을 수 있다. 특히 redis-cli (commad line)을 통해 redis에서 사용하고 있는 용량을 알수 있다.redis-cli info를 하면 아래와 같은 내용이 나오며 실제 사용되어지고 있는 것은 used_memory_human를 보면 된다.# Memoryused_memory:38894386256used_memory_human:36.22Gused_memory_rss:46722285568used_memory_peak:85900378992used_memory_peak_human:80.00Gused_memory_lua:31744mem_fragmentation_ratio:1.20 mem_allocator:jemallo.. 2016. 1. 27. 이전 1 다음 반응형