站点工具


服务器技术:java:redisclient

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

服务器技术:java:redisclient [2020/07/08 18:23] (当前版本)
chenjinlian 创建
行 1: 行 1:
 +<​p><​br/>​import java.io.IOException;<​br/>​import java.util.List;<​br/>​import java.util.UUID;<​br/><​br/>​import org.slf4j.Logger;<​br/>​import org.slf4j.LoggerFactory;<​br/>​import org.springframework.beans.factory.annotation.Autowired;<​br/>​import org.springframework.beans.factory.annotation.Qualifier;<​br/>​import org.springframework.beans.factory.annotation.Value;<​br/>​import org.springframework.stereotype.Component;<​br/><​br/>​import com.fasterxml.jackson.core.JsonProcessingException;<​br/>​import com.fasterxml.jackson.databind.ObjectMapper;<​br/><​br/>​import redis.clients.jedis.Jedis;<​br/>​import redis.clients.jedis.JedisSentinelPool;<​br/><​br/>​@Component<​br/>​public class RedisClient {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​@Autowired<​br/>&​nbsp;&​nbsp;​ &​nbsp;​@Qualifier(&​quot;​jedisSentinelPool&​quot;​)<​br/>&​nbsp;&​nbsp;​ &​nbsp;​private JedisSentinelPool jedisSentinelPool;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​@Value(&​quot;​${redis.key.prefix}&​quot;​)<​br/>&​nbsp;&​nbsp;​ &​nbsp;​private String prefix;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​Logger logger = LoggerFactory.getLogger(RedisClient.class);<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​private ObjectMapper objectMapper = new ObjectMapper();<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;/​**<​br/>&​nbsp;&​nbsp;​ &nbsp; * 从Redis缓存获取数据<​br/>&​nbsp;&​nbsp;​ &nbsp; * <​br/>&​nbsp;&​nbsp;​ &nbsp; * @param redisKey<​br/>&​nbsp;&​nbsp;​ &nbsp; * @return<​br/>&​nbsp;&​nbsp;​ &nbsp; */<​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Object getObjFromRedis(String redisKey) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String jsonStr = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jsonStr = jedis.get(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (jedis != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (jsonStr != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return objectMapper.readValue(jsonStr,​ Object.class);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} catch (IOException e) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​logger.error(&​quot;​反序列化失败&​quot;,​ e);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public &​lt;​T&​gt;​ T getObjFromRedis(String redisKey, Class&​lt;​T&​gt;​ clazz) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String jsonStr = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jsonStr = jedis.get(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (jsonStr != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return objectMapper.readValue(jsonStr,​ clazz);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} catch (IOException e) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​logger.error(&​quot;​反序列化失败&​quot;,​ e);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Long incr(String redisKey) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long num = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​num = jedis.incr(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return num;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Long incrBy(String redisKey, int offset) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long num = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​num = jedis.incrBy(redisKey,​ offset);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return num;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Long decrBy(String redisKey, int offset) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long num = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​num = jedis.decrBy(redisKey,​ offset);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return num;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Long decr(String redisKey) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long num = 0L;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​num = jedis.decr(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if(null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return num;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Jedis getJedisResource() {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis = jedisSentinelPool.getResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (jedis != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return jedis;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} catch (Exception e) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​logger.warn(&​quot;​=============Redis Resource Is Not alived====================&​quot;,​ e);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (jedis != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnBrokenResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String set(String redisKey, String value) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String ret = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​ret = jedis.set(redisKey,​ value);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return ret;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String set(String redisKey, String value, int seconds) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String ret = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​ret = jedis.setex(redisKey,​ seconds, value);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return ret;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Long delete(String redisKey) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long ret = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​ret = jedis.del(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return ret;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String set(String redisKey, Long value) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return this.set(redisKey,​ String.valueOf(value));<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public synchronized Long getLong(String redisKey) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long l = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String str = this.get(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (str != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;l = Long.valueOf(str);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return l;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String get(String redisKey) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String str = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​str = jedis.get(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return str;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;/​**<​br/>&​nbsp;&​nbsp;​ &nbsp; * 一次获取多个<​br/>&​nbsp;&​nbsp;​ &nbsp; * <​br/>&​nbsp;&​nbsp;​ &nbsp; * @param redisKey<​br/>&​nbsp;&​nbsp;​ &nbsp; * @return<​br/>&​nbsp;&​nbsp;​ &nbsp; */<​br/>&​nbsp;&​nbsp;​ &​nbsp;​public List&​lt;​String&​gt;​ mget(String[] redisKey) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ redisKey = prefix + redisKey;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (redisKey != null) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​for (int i = 0; i &lt; redisKey.length;​ i++) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey[i] = prefix + redisKey[i];<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​List&​lt;​String&​gt;​ str = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​str = jedis.mget(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return str;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String saveObjToRedis(String redisKey, Object obj, int seconds) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String value;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​value = objectMapper.writeValueAsString(obj);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} catch (JsonProcessingException e) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​logger.error(&​quot;​json序列化失败&​quot;,​ e);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return &​quot;​FAIL&​quot;;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String code = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​code = jedis.setex(redisKey,​ seconds, value);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return code;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;/​**<​br/>&​nbsp;&​nbsp;​ &nbsp; * 保存数据到Redis<​br/>&​nbsp;&​nbsp;​ &nbsp; * <​br/>&​nbsp;&​nbsp;​ &nbsp; * @param redisKey @throws<​br/>&​nbsp;&​nbsp;​ &nbsp; */<​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String saveObjToRedis(String redisKey, Object obj) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​redisKey = prefix + redisKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String value;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​value = objectMapper.writeValueAsString(obj);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} catch (JsonProcessingException e) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​logger.error(&​quot;​json序列化失败&​quot;,​ e);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return &​quot;​FAIL&​quot;;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String code = null;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​code = jedis.set(redisKey,​ value);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return code;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public String lock(String lockKey, int seconds) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String redisKey = prefix + lockKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String lockedValue = UUID.randomUUID().toString();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Long result = jedis.setnx(redisKey,​ lockedValue);<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 加锁失败<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (result &lt;= 0) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return lockedValue;<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (result &gt; 0 &​amp;&​amp;​ seconds &gt; 0) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.expire(redisKey,​ seconds);<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return lockedValue;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​public Long unlock(String lockKey, String lockedValue) {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String redisKey = prefix + lockKey;<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​Jedis jedis = getJedisResource();<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​try {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​String target = jedis.get(redisKey);<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (target != null &​amp;&​amp;​ target.equals(lockedValue)) {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return jedis.del(redisKey);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &nbsp;} finally {<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ 归还资源<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;//​ jedisPool.returnResource(jedis);<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​if (null != jedis)<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedis.close();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​return -1l;<​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​@Override<​br/>&​nbsp;&​nbsp;​ &​nbsp;​protected void finalize() throws Throwable {<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​jedisSentinelPool.destroy();<​br/>&​nbsp;&​nbsp;​ &​nbsp;&​nbsp;&​nbsp;​ &​nbsp;​super.finalize();<​br/><​br/>&​nbsp;&​nbsp;​ &​nbsp;​}<​br/>​}</​p>​
服务器技术/java/redisclient.txt · 最后更改: 2020/07/08 18:23 由 chenjinlian