2024.07.07 - [Spring/대용량 트래픽] - Spring Webflux R2DBC 여러가지 기능들
Spring Webflux에서 함께 사용할수 있는 Redis이다. Redis는 간단하게 key/value 형식의 nosql인 in-memory(메모리) DataBase이다. 자세한건 이 포스팅을 참고하길 바란다.https://lsdiary.tistory.com/52
그렇다면 Reactive는 Redis에 어떻게 영향을 줄까? Redis에 비동기, non-blocking 요청을 할수 있게 만드는 라이브러리 역할을 한다!
R2DBC와 같이 DB에 접근할때만 동기적으로 작동하면 전체성능이 똑같아 지기때문에, Webflux를 활용할거면 전체 아키텍처 flow에 맞춰서 전부 비동기적으로 구현해야 비로소 효과가 나타난다.
- Redis는 기본적으로 동시에 여러 명령을 받을 수 있지만, 실제 처리는 순차적으로 하나씩만 진행한다.
따라서 우리는 Reactive Redis를 활용해서 Webflux서버와 Redis간의 Nonblocking I/O로 동시에 여러 요청과 응답을 받을수 있도록 해야한다. 그래서 스프링부트에서는 이를 위해 Spring Data Reactive Redis라는 매우 편리한 기능을 제공한다. 내부적으로 사용되는 Redis 클라이언트는 lettuce(기본), jedis가 있다.
https://spring.io/projects/spring-data-redis#overview
공식문서에 lettuce에 대한 정보를 찾아볼수있다. 중요한 내용은 Webflux에서 사용되는 netty와 함께 사용할수 있다는 점이다.
그리고 lettuce 클라이언트는 async, sync 둘다 지원한다!
기본적으로 Spring Data Redis에서는 RedisTemplate이라는 클라이언트를 제공해줬는데,
Spring Data Reactive Redis에서도 Reactive 버전으로 ReactiveRedisTemplate를 제공한다.
다음 포스팅에서 직접 해보는것을 다뤄볼것이다.
'Spring > 대용량 트래픽' 카테고리의 다른 글
Spring MVC vs Webflux 성능 비교(with Jmeter) (0) | 2024.07.13 |
---|---|
Reactive Redis 사용법 (1) | 2024.07.12 |
Spring Webflux R2DBC 여러가지 기능들 (0) | 2024.07.07 |
Spring Webflux R2DBC 사용해보기 (0) | 2024.07.06 |
R2DBC 알아보기!! (0) | 2024.07.03 |