package com.yeshi.buwan.util;
|
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Component;
|
|
import com.google.gson.Gson;
|
import com.yeshi.buwan.vo.video.VideoListResultVO;
|
|
import redis.clients.jedis.Jedis;
|
import redis.clients.jedis.JedisPool;
|
import redis.clients.jedis.params.SetParams;
|
|
//抢红包采用的redis
|
@Component
|
public class RedisManager {
|
|
@Resource
|
private JedisPool jedisPool;
|
|
public Jedis getJedis() {
|
Jedis jedis = jedisPool.getResource();
|
return jedis;
|
}
|
|
/**
|
* 缓存字符串
|
*
|
* @param key
|
* @param value
|
*/
|
private void setString(String key, String value) {
|
Jedis jedis = getJedis();
|
SetParams params = new SetParams().nx().ex(60);
|
jedis.set(key, value, params);
|
try {
|
jedis.set(key, value);
|
} finally {
|
jedis.close();
|
}
|
|
}
|
|
/**
|
* 删除某个键值
|
*
|
* @param key
|
* @param value
|
*/
|
private void removeKey(String key) {
|
Jedis jedis = getJedis();
|
try {
|
jedis.del(key);
|
} finally {
|
jedis.close();
|
}
|
|
}
|
|
/**
|
* 缓存字符串
|
*
|
* @param key
|
* @param value
|
* @param seconds
|
* -缓存时间(s)
|
*/
|
private void setString(String key, String value, int seconds) {
|
Jedis jedis = getJedis();
|
try {
|
jedis.setex(key, seconds, value);
|
} finally {
|
jedis.close();
|
}
|
}
|
|
private String getString(String key) {
|
Jedis jedis = getJedis();
|
try {
|
return jedis.get(key);
|
} finally {
|
jedis.close();
|
}
|
}
|
|
public void increase(String key) {
|
Jedis jedis = getJedis();
|
try {
|
jedis.incr(key);
|
} finally {
|
jedis.close();
|
}
|
}
|
|
public void expire(String key, int seconds) {
|
Jedis jedis = getJedis();
|
try {
|
jedis.expire(key, seconds);
|
} finally {
|
jedis.close();
|
}
|
}
|
|
public void cacheCommonString(String key, String value, int seconds) {
|
setString(key, value, seconds);
|
}
|
|
public void cacheCommonString(String key, String value) {
|
setString(key, value);
|
}
|
|
public String getCommonString(String key) {
|
return getString(key);
|
}
|
|
public void removeCommonString(String key) {
|
removeKey(key);
|
}
|
|
/**
|
* 保存视频数据
|
*
|
* @param key
|
* @param videoData
|
*/
|
public void saveVideoList(String key, VideoListResultVO videoData) {
|
Gson gson = new Gson();
|
cacheCommonString(key, gson.toJson(videoData), 60 * 60 * 24);
|
}
|
|
/**
|
* 获取视频列表
|
*
|
* @param key
|
* @return
|
*/
|
public VideoListResultVO getVideoList(String key) {
|
String st = getCommonString(key);
|
if (!StringUtil.isNullOrEmpty(st)) {
|
return new Gson().fromJson(st, VideoListResultVO.class);
|
}
|
return null;
|
}
|
|
/**
|
* 保存列表
|
*
|
* @param clazzList
|
* @param key
|
* @param seconds
|
*/
|
public <T> T saveObjList(List<T> clazzList, String key, Integer seconds) {
|
if (clazzList == null)
|
return null;
|
String value = new Gson().toJson(clazzList);
|
if (seconds != null)
|
cacheCommonString(key, value, seconds);
|
else
|
cacheCommonString(key, value);
|
return null;
|
}
|
|
/**
|
* 获取对象
|
*
|
* @param clazz
|
* @param key
|
* @return
|
*/
|
public Class<?> getObj(Class<?> clazz, String key) {
|
String value = getCommonString(key);
|
return (Class<?>) new Gson().fromJson(value, clazz);
|
}
|
|
/**
|
* 获取列表
|
*
|
* @param clazz
|
* @param key
|
* @return
|
*/
|
public <T> List<T> getObjList(Class<T> clazz, String key) {
|
String value = getCommonString(key);
|
return JsonUtil.jsonToList(value, clazz);
|
}
|
|
}
|