<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>