jedis는 사실상 java 기반 응용프로그램 표준 드라이버이고 많이 사용함에도 Spring에서 lettuce를 선호하는 점은 다음과 같다.

여러 쓰레드에서 단일 jedis 인스턴스를 공유하려 할때 jedis쓰레드에 안전하지 않다. 멀티쓰레드환경에서 고려해야할 상황이 따른다.

안전한 방법은 pooling(Thread-pool)과 같은 jedis-pool을 사용하는 것이지만 물리적인 비용의(connection인스턴스를 미리 만들어놓고 대기하는 연결비용의 증가) 증가가 따른다.

반면 lettucenetty 라이브러리 위에서 구축되었고, connection 인스턴스((StatefulRedisConnection))를 여러 쓰레드에서 공유가 가능하다.(Thread-safe)

=> 혼동할 수 있는데, connection 인스턴스의 공유라는 점에서 Thread-safe를 논점을 둔 점이고 Single-Thread레디스에 데이터에 접근할 때는 또다르게 고려해야 할 점이다.



https://github.com/spring-projects/spring-session/issues/789

'Cloud & NoSQL & Middleware > Redis' 카테고리의 다른 글

Redis Library  (2) 2018.11.17
Single Thread  (0) 2018.11.17
SpirngBoot에서 Redis 연동(Jedis)  (0) 2018.08.09
Redis 명령어  (0) 2018.08.04
Redis Pub/Sub Model  (0) 2018.07.01

+ Recent posts