From efd9ac5b88dfdb3c4d2e4bcc5e7a5258aa55542c Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 21 四月 2025 20:29:15 +0800 Subject: [PATCH] 更换缓存连接方式 --- ZuulZYTravel/src/main/java/com/sinata/zuul/util/RedisUtil.java | 151 ++++++++++++++++++++++++++++---------------------- 1 files changed, 84 insertions(+), 67 deletions(-) diff --git a/ZuulZYTravel/src/main/java/com/sinata/zuul/util/RedisUtil.java b/ZuulZYTravel/src/main/java/com/sinata/zuul/util/RedisUtil.java index 2bcbd87..de4c41d 100644 --- a/ZuulZYTravel/src/main/java/com/sinata/zuul/util/RedisUtil.java +++ b/ZuulZYTravel/src/main/java/com/sinata/zuul/util/RedisUtil.java @@ -1,15 +1,11 @@ package com.sinata.zuul.util; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; -import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisPool; -import redis.clients.jedis.Pipeline; -import redis.clients.jedis.Response; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; +import org.springframework.util.StringUtils; +import java.util.UUID; +import java.util.concurrent.TimeUnit; /** @@ -17,25 +13,24 @@ */ @Component public class RedisUtil { - + @Autowired - private JedisPool jedisPool; - - + private RedisTemplate redisTemplate; + + + /** * 向redis中存储字符串没有过期时间 * @param key * @param value */ public void setStrValue(String key, String value){ - if(StringUtil.isNotEmpty(key)){ - Jedis resource = jedisPool.getResource(); - String set = resource.set(key, value); - resource.close(); + if(!StringUtils.isEmpty(key) && !StringUtils.isEmpty(value)){ + redisTemplate.opsForValue().set(key, value); } } - - + + /** * 以分钟为单位设置存储值(设置过期时间) * @param key @@ -43,72 +38,94 @@ * @param time 秒 */ public void setStrValue(String key, String value, int time){ - if(StringUtil.isNotEmpty(key)){ - Jedis resource = jedisPool.getResource(); - String setex = resource.setex(key, time, value); - resource.close(); + if(!StringUtils.isEmpty(key) && !StringUtils.isEmpty(value)){ + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } } - - + + /** * 从redis中获取值 * @param key * @return */ public String getValue(String key){ - if(StringUtil.isNotEmpty(key)){ - Jedis resource = jedisPool.getResource(); - String data = resource.get(key); - - resource.close(); + if(!StringUtils.isEmpty(key)){ + String data = (String) redisTemplate.opsForValue().get(key); return data; } return null; } - - - /** - * 批量获取 - * @param kes - * @return - */ - public List<Object> getValues(List<String> kes){ - if(null != kes){ - Jedis resource = jedisPool.getResource(); - Pipeline pipelined = resource.pipelined(); - for(String key : kes){ - pipelined.get(key); - } - List<Object> list = pipelined.syncAndReturnAll(); - resource.close(); - pipelined.clear(); - try { - pipelined.close(); - } catch (IOException e) { - e.printStackTrace(); - } - List<Object> data = new ArrayList<>(); - for(Object o : list){ - if(null != o){ - data.add(o); - } - } - return data; - } - return null; - } - - + + + + /** * 删除key * @param key */ public void remove(String key){ - if(StringUtil.isNotEmpty(key)){ - Jedis resource = jedisPool.getResource(); - Long del = resource.del(key); - resource.close(); + if(!StringUtils.isEmpty(key)){ + redisTemplate.delete(key); } } + + + + + + + + /** + * redis加锁 + * @param key + * @param value + * @param time + * @return + */ + public boolean lock(String key, String value, int time){ + if(!StringUtils.isEmpty(key)){ + key += "_lock"; + return redisTemplate.opsForValue().setIfAbsent(key, value); + } + return false; + } + + /** + * 获取redis锁 + * @param time + * @return + */ + public boolean lock(int time){ + String uuid = UUID.randomUUID().toString(); + return lock("redis", uuid, time); + } + + + public boolean lock(String key, int time){ + String uuid = UUID.randomUUID().toString(); + return lock(key, uuid, time); + } + + + /** + * redis释放锁 + * @param key + * @return + */ + public boolean unlock(String key){ + if(!StringUtils.isEmpty(key)){ + key += "_lock"; + return redisTemplate.delete(key); + } + return false; + } + + /** + * 删除锁 + * @return + */ + public boolean unlock(){ + return unlock("redis"); + } } -- Gitblit v1.7.1