package com.dsh.course.util; import com.alibaba.csp.sentinel.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.Pipeline; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * Redis工具类 */ @Component public class RedisUtil { @Autowired private JedisPool jedisPool; /** * 向redis中存储字符串没有过期时间 * Storing strings in Redis without an expiration time. * * @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); closeJedis(resource); } } /** * 以分钟为单位设置存储值(设置过期时间) * Set storage value in minutes (set expiration time) as units. * * @param key * @param value * @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); closeJedis(resource); } } /** * 从redis中获取值 * * @param key * @return */ public String getValue(String key) { if (StringUtil.isNotEmpty(key)) { Jedis resource = jedisPool.getResource(); String data = resource.get(key); closeJedis(resource); return data; } return null; } /** * 批量获取 * * @param kes * @return */ public List getValues(List kes) { if (null != kes) { Jedis resource = jedisPool.getResource(); Pipeline pipelined = resource.pipelined(); for (String key : kes) { pipelined.get(key); } List list = pipelined.syncAndReturnAll(); closeJedis(resource); pipelined.clear(); try { pipelined.close(); } catch (IOException e) { e.printStackTrace(); } List 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); closeJedis(resource); } } /** * 删除资源 * * @param jedis */ public void closeJedis(Jedis jedis) { if (null != jedis) { jedis.close(); } } }