title: Jedis connections not being released
body: <p>I am having issues using Redis with a Jedis connection pool. </p>
  
  <p>The behaviour I am seeing is that after connections are established they are not being released back into the connection pool.</p>
  
  <p>I know this because using the <code>redis-cli client list</code> command I can see the connections still hanging around.</p>
  
  <p>Can someone please review my jedis connection pool to let me know if that might be causing the issue.</p>
  
  <pre><code>     &lt;spring:bean id="ElasticachePoolConfig" name="ElasticachePoolConfig" class="redis.clients.jedis.JedisPoolConfig" &gt;
  
          &lt;!-- Minimum number of idle connections to Redis - these can be seen as always open and ready to serve --&gt;
          &lt;spring:property name="minIdle" value="${redis.minIdle}" /&gt;
  
          &lt;!-- Number of connections to Redis that just sit there and do nothing --&gt;
          &lt;spring:property name="maxIdle" value="${redis.maxIdle}" /&gt;
  
          &lt;!-- Maximum number of active connections that can be allocated from this pool at the same time --&gt;
          &lt;spring:property name="maxTotal" value="${redis.maxTotal}" /&gt;
  
          &lt;!-- The minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor.--&gt; 
          &lt;spring:property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}" /&gt;
  
          &lt;!-- The minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle connection evictor --&gt;
          &lt;spring:property name="softMinEvictableIdleTimeMillis" value="${redis.softMinEvictableIdleTimeMillis}" /&gt;
  
          &lt;!-- The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception --&gt;
          &lt;spring:property name="maxWaitMillis" value="${redis.maxWaitMillis}" /&gt;
  
          &lt;!-- Maximum number of connections to test in each idle check --&gt;
          &lt;spring:property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}" /&gt;
  
          &lt;!-- Tests whether connection is dead when connection retrieval method is called --&gt;
          &lt;spring:property name="testOnBorrow" value="${redis.testOnBorrow}" /&gt;
  
          &lt;!-- Tests whether connection is dead when returning a connection to the pool --&gt;
          &lt;spring:property name="testOnReturn" value="${redis.testOnReturn}" /&gt;
  
          &lt;!-- Tests whether connections are dead during idle periods --&gt;
          &lt;spring:property name="testWhileIdle" value="${redis.testWhileIdle}" /&gt;
  
          &lt;!-- Idle connection checking period --&gt;
          &lt;spring:property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}" /&gt;
  
          &lt;spring:property name="blockWhenExhausted" value="${redis.blockWhenExhausted}" /&gt;
  
       &lt;/spring:bean&gt;
  </code></pre>
  
  <p>Where the properties are set as follows...</p>
  
  <pre><code>redis.port=6379
  redis.timeout=2000
  redis.ttl=600
  redis.host=localhost
  redis.repeater.maxRetries=3
  redis.repeater.millisBetweenRetries=2000
  redis.minIdle=5
  redis.maxIdle=10
  redis.maxTotal=8
  redis.minEvictableIdleTimeMillis=30000
  redis.softMinEvictableIdleTimeMillis=-1
  redis.maxWaitMillis=5000
  redis.numTestsPerEvictionRun=10
  redis.testOnBorrow=true
  redis.testOnReturn=true
  redis.testWhileIdle=false
  redis.timeBetweenEvictionRunsMillis=50000
  redis.blockWhenExhausted=true
  </code></pre>