Redis & Jedis

Redis와 Redis 관련 정보를 다음 url에서 발췌해서 적는다

https://gist.github.com/JonCole/925630df72be1351b21440625ff2671f#file-redis-bestpractices-java-jedis-md

Jedis는 Single 스레드이다

  • 멀티스레드 환경에서 절대로 동일한 Jedis Connection instance를 같은 시간에 사용하지 말아라
  • 만약에 동시 접근을 하게 된다면 "expected '$' but got'" 과같은 오류 메시지를 확인 할 것이다.

JedisPool을 사용해라

  • 멀티스레드 환경에서 connections을 재활용 할 수 있게 해준다
  • JedisPool Object는 thread-safe하게 작성되었다
  • Pool은 단 한번만 설정하고 재활용 되어야 한다
  • Jedis instance는 사용후 반듯이 pool로 돌아가야 한다.
  • 컨넥션 에러가 30초 이상 발생할 경우 jedisPool을 새로 생성하는게 좋다.
Setting Description
connectTimeout
soTimeout
port

JedisPoolConfig settings

Setting Description
maxTotal
maxIdle
minIdle
blockWenExhausted
maxWaitMillis
TestOnBorrow
minEvictableIdleTimeMillis