반응형 전체 글161 스프링 Redis 연동(feat. 스프링 캐시) 스프링 프로젝트에 Redis 연동을 위한 어떤 설정을 해야하고 각 역할이 무엇인지 알아보겠다. [build.gradle.kts]implementation("org.springframework.boot:spring-boot-starter-data-redis:3.2.3") RedisConnectionFactoryRedisConnectionFactory는 Redis 서버와의 연결을 생성하고 관리하는 역할을 한다.단일 인스턴스, master/slave, Cluster 모드에서 커넥션 생성과 관리의 추상화 타입이다. [RedisConnectionFactory의 구현체] LettuceConnectionFactoryJedisConnectionFactory클라이언트 방식비동기-NonBlocking동기-Blocking스.. 2025. 7. 17. Redis 자료구조(feat. 시간복잡도) Redis 자료구조와 시간복잡도전체 키 조회keys * 모든 키를 조회하기에 시간복잡도가 O(N)이다. (N은 키의 갯수)Redis는 싱글 스레드 기반으로 동작하기에 keys *를 사용하면 해당 명령어 수행으로 인해 다른 명령어 처리가 늦어질 수 있다. Redis 모든 DB 키 삭제FLUSHALLFLUSHALL ASYNC ASYNC 키워드는 키 삭제를 비동기로 실행되도록 한다.FLUSHALL의 경우 동기적으로 실행되며 메모리에 key-value 삭제하는 처리가 모두 완료될때까지 다른 명령어는 block 된다.반면에 FLUSHALL ASYNC의 경우 참조관계만 끊어 놓고 실제 메모리에서 삭제는 백그라운드 스레드가 제거하는 처리를 진행하게 된다.(키를 저장하는 해시테이블에서 키 참조를 제거 후 백그라운드가 .. 2025. 7. 14. Redis - 싱글스레드, 영구성, 고가용성(feat. docker 환경설정) Redis란Redis의 가장 큰 특징은 빠른 성능입니다. 데이터를 메모리에 저장하고, 해시 기반 키 관리 방식을 통해 대부분의 연산을 시간복잡도 O(1)로 처리할 수 있어 매우 빠른 응답 속도를 제공합니다. 또한 Redis는 싱글 스레드 기반으로 동작하기 때문에, 동시성 문제에 비교적 자유롭고 구현이 단순하다는 장점이 있습니다. 사용자 명령어 처리는 싱글 스레드로 수행되지만, I/O 처리는 I/O Multiplexing 기법과 백그라운드 스레드를 통해 처리되어 성능을 더욱 향상시킵니다. Redis는 메모리 기반 DB이지만, 데이터의 영속성(persistence)을 보장하기 위해 디스크에 데이터를 저장하는 두 가지 방식인 RDB(Redis Database)와 AOF(Append Only File)를 지원합.. 2025. 7. 14. 부하테스트 - 컨텐츠 생성- 학습지 다운- 마이페이지 2025. 6. 21. 이전 1 2 3 4 ··· 41 다음 반응형