1.定义: @Autowired private JedisPool jedisPool; public static interface Execution { public <T> T process(Jedis jedis); } /** * 执行请求,开始前获取资源,结束后返回资源 * * @param execution * @return */ public <T> T execute(Execution execution) { Jedis jedis = null; try { jedis = jedisPool.getResource(); T result = execution.process(jedis); return result; } catch (JedisConnectionException e) { throw e; } finally { if (null != jedis) { jedis.close(); } } } 2.使用: @Autowired private JedisExecutionService jedisExecutionService; public void set(final String key, final Object value, final int seconds) { if (null == key) { throw new IllegalArgumentException("Cached key cannot be null."); } if (null == value) { throw new IllegalArgumentException("Cached value cannot be null."); } jedisExecutionService.execute(new Execution() { @Override public Object process(Jedis jedis) { byte[] byteArray = serialize(value); jedis.set(key.getBytes(), byteArray); if (seconds > 0) { jedis.expire(key.getBytes(), seconds); } return null; } }); } public void expire(final String key, final int seconds) { if (null == key) { throw new IllegalArgumentException("Cached key cannot be null."); } jedisExecutionService.execute(new Execution() { @Override public Object process(Jedis jedis) { jedis.expire(key.getBytes(), seconds); return null; } }); } public Object get(final String key) { if (null == key) { throw new IllegalArgumentException("Cached key cannot be null."); } return jedisExecutionService.execute(new Execution() { @Override public Object process(Jedis jedis) { byte[] bs = jedis.get(key.getBytes()); if (null == bs) { return null; } else { return deserialize(bs); } } }); }