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();
|
}
|
}
|
}
|