package com.sinata.push.util;
|
|
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中存储字符串没有过期时间
|
* @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();
|
}
|
}
|
|
|
/**
|
* 以分钟为单位设置存储值(设置过期时间)
|
* @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);
|
resource.close();
|
}
|
}
|
|
|
/**
|
* 从redis中获取值
|
* @param key
|
* @return
|
*/
|
public String getValue(String key){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
String data = resource.get(key);
|
resource.close();
|
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;
|
}
|
|
|
/**
|
* 从右侧获取数据
|
* @param key
|
* @return
|
*/
|
public String getValueList(String key){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
String s = resource.lpop(key);
|
resource.close();
|
return s;
|
}
|
return null;
|
}
|
|
|
|
|
|
|
/**
|
* 从左侧添加数据到list中
|
* @param key
|
* @param s
|
*/
|
public void addValueList(String key, String s){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
resource.rpush(key, s);
|
resource.close();
|
}
|
}
|
|
|
|
|
|
/**
|
* 删除key
|
* @param key
|
*/
|
public void remove(String key){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
Long del = resource.del(key);
|
resource.close();
|
}
|
}
|
|
|
/**
|
* 删除list集合数据
|
* @param key
|
* @param count
|
* @param value
|
*/
|
public void delValueList(String key, long count, String value){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
Long lrem = resource.lrem(key, count, value);
|
resource.close();
|
}
|
}
|
|
|
/**
|
* 获取list集合数量
|
* @param key
|
* @return
|
*/
|
public Long getListCount(String key){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
Long length = resource.llen(key);
|
resource.close();
|
return length;
|
}
|
return 0L;
|
}
|
|
|
/**
|
* 获取集合内容
|
* @param key
|
* @param start
|
* @param end
|
* @return
|
*/
|
public List<String> getList(String key, long start, long end){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
List<String> lrange = resource.lrange(key, start, end);
|
resource.close();
|
return lrange;
|
}
|
return new ArrayList<>();
|
}
|
|
|
/**
|
* 获取list所有数据
|
* @param key
|
* @return
|
*/
|
public List<String> getAllList(String key){
|
if(StringUtil.isNotEmpty(key)){
|
Jedis resource = jedisPool.getResource();
|
Long llen = resource.llen(key);
|
List<String> lrange = resource.lrange(key, 0, llen - 1);
|
resource.close();
|
return lrange;
|
}
|
return new ArrayList<>();
|
}
|
}
|