Lettuce란?
Lettuce란, 동기와 비동기 통신을 모두 지원하는 논블로킹 레디스 자바 클라이언트이다.
Jedis란?
Jedis란 사용 편의성을 위해 설계된 레디스 자바 클라이언트이다. 동기식으로만 작동하며, 다른 Redis 클라이언트에 비해 가볍다는 특징을 가지고 있다.
Lettuce vs Jedis
- 성능 : Lettuce는 동기와 비동기 통신 모두를 지원하지만, Jedis는 동기식 통신만 지원한다. 따라서 대량의 요청과 응답 처리에 있어서, Lettuce가 더욱 유리하다. TPS, CPU, Connection 수, 응답속도 등 모든 면에서 Lettuce가 우위에 있다.
- thread safe : Lettuce는 thread safe 하기 때문에, 멀티 쓰레드 환경에서 단일 Lettuce 인스턴스를 사용해도 문제없다. 하지만 Jedis는 thread safe 하지 않기 때문에, 여러 쓰레드 간에 단일 Jedis 인스턴스를 공유하지 말아야 한다.
- Jedis를 멀티 쓰레드 환경에서 사용하려면 커넥션 풀을 사용해야 한다. 하지만 1) 레디스 자체의 커넥션 수에 제한이 걸리거나 2) 합리적인 커넥션 수를 초과하지 않기 위해, 커넥션 수를 제한해야 하는 상황이 있다는 점을 유의해야 한다.
즉, 성능과 쓰레드 안정성의 측면을 고려하면 Lettuce가 더 나은 선택이다.
참고자료
'데이터베이스 > 레디스' 카테고리의 다른 글
레디스 incr, decr를 활용해서 동시성 테스트하기(kotlin, spring) (1) | 2024.06.11 |
---|---|
Spring Data Redis 공식문서 읽어보기 (2) | 2023.12.03 |
레디스 사용 시 주의사항 (0) | 2023.10.29 |
레디스란 (0) | 2023.10.25 |