| New file | 
|  |  |  | 
|---|
|  |  |  | package com.dsh.competition.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<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(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | closeJedis(resource); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | closeJedis(resource); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 删除资源 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param jedis | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public void closeJedis(Jedis jedis) { | 
|---|
|  |  |  | if (null != jedis) { | 
|---|
|  |  |  | jedis.close(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|