package core.util;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.BoundSetOperations;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
public class RedisUtil {
@Autowired
@Qualifier("redisTemplate")
public RedisTemplate<String, Object> redisTemplate;
@Autowired
@Qualifier("redisTemplate")
protected RedisTemplate<Serializable, Serializable> redisTemplateSerializable;
/**
* 缓存基本的对象,Integer、String、实体类等
*
* @param key
* 缓存的键值
* @param value
* 缓存的值
* @return 缓存的对象
*/
public void setCacheObject(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
/**
* 获得缓存的基本对象。
*
* @param key
* 缓存键值
* @param operation
* @return 缓存键值对应的数据
*/
public Object getCacheObject(String key/* ,ValueOperations<String,T> operation */) {
return redisTemplate.opsForValue().get(key);
}
/**
* 缓存List数据
*
* @param key
* 缓存的键值
* @param dataList
* 待缓存的List数据
* @return 缓存的对象
*/
public Object setCacheList(String key, List<Object> dataList) {
ListOperations<String, Object> listOperation = redisTemplate.opsForList();
if (null != dataList) {
int size = dataList.size();
for (int i = 0; i < size; i++) {
listOperation.rightPush(key, dataList.get(i));
}
}
return listOperation;
}
/**
* 获得缓存的list对象
*
* @param key
* 缓存的键值
* @return 缓存键值对应的数据
*/
public List<Object> getCacheList(String key) {
List<Object> dataList = new ArrayList<Object>();
ListOperations<String, Object> listOperation = redisTemplate.opsForList();
Long size = listOperation.size(key);
for (int i = 0; i < size; i++) {
dataList.add(listOperation.leftPop(key));
}
return dataList;
}
/**
* 获得缓存的list对象 @Title: range @param @param key @param @param start @param @param
* end @param @return @return List<T> 返回类型 @throws
*/
public List<Object> range(String key, long start, long end) {
ListOperations<String, Object> listOperation = redisTemplate.opsForList();
return listOperation.range(key, start, end);
}
/**
* list集合长度
*
* @param key
* @return
*/
public Long listSize(String key) {
return redisTemplate.opsForList().size(key);
}
/**
* 覆盖操作,将覆盖List中指定位置的值
*
* @param key
* @param int
* index 位置
* @param String
* value 值
* @return 状态码
*/
public void listSet(String key, int index, Object obj) {
redisTemplate.opsForList().set(key, index, obj);
}
/**
* 向List尾部追加记录
*
* @param String
* key
* @param String
* value
* @return 记录总数
*/
public long leftPush(String key, Object obj) {
return redisTemplate.opsForList().leftPush(key, obj);
}
/**
* 向List头部追加记录
*
* @param String
* key
* @param String
* value
* @return 记录总数
*/
public long rightPush(String key, Object obj) {
return redisTemplate.opsForList().rightPush(key, obj);
}
/**
* 算是删除吧,只保留start与end之间的记录
*
* @param String
* key
* @param int
* start 记录的开始位置(0表示第一条记录)
* @param int
* end 记录的结束位置(如果为-1则表示最后一个,-2,-3以此类推)
* @return 执行状态码
*/
public void trim(String key, int start, int end) {
redisTemplate.opsForList().trim(key, start, end);
}
/**
* 删除List中c条记录,被删除的记录值为value
*
* @param String
* key
* @param int
* c 要删除的数量,如果为负数则从List的尾部检查并删除符合的记录
* @param Object
* obj 要匹配的值
* @return 删除后的List中的记录数
*/
public long remove(String key, long i, Object obj) {
return redisTemplate.opsForList().remove(key, i, obj);
}
/**
* 缓存Set
*
* @param key
* 缓存键值
* @param dataSet
* 缓存的数据
* @return 缓存数据的对象
*/
public BoundSetOperations<String, Object> setCacheSet(String key, Set<Object> dataSet) {
BoundSetOperations<String, Object> setOperation = redisTemplate.boundSetOps(key);
/*
* T[] t = (T[]) dataSet.toArray(); setOperation.add(t);
*/
Iterator<Object> it = dataSet.iterator();
while (it.hasNext()) {
setOperation.add(it.next());
}
return setOperation;
}
/**
* 获得缓存的set
*
* @param key
* @param operation
* @return
*/
public Set<Object> getCacheSet(String key/* ,BoundSetOperations<String,T> operation */) {
Set<Object> dataSet = new HashSet<Object>();
BoundSetOperations<String, Object> operation = redisTemplate.boundSetOps(key);
Long size = operation.size();
for (int i = 0; i < size; i++) {
dataSet.add(operation.pop());
}
return dataSet;
}
/**
* 缓存Map
*
* @param key
* @param dataMap
* @return
*/
public int setCacheMap(String key, Map<String, Object> dataMap) {
if (null != dataMap) {
HashOperations<String, Object, Object> hashOperations = redisTemplate.opsForHash();
for (Map.Entry<String, Object> entry : dataMap.entrySet()) {
/*
* System.out.println("Key = " + entry.getKey() + ", Value = " +
* entry.getValue());
*/
if (hashOperations != null) {
hashOperations.put(key, entry.getKey(), entry.getValue());
} else {
return 0;
}
}
} else {
return 0;
}
return dataMap.size();
}
/**
* 获得缓存的Map
*
* @param key
* @param hashOperation
* @return
*/
public Map<Object, Object> getCacheMap(String key/* ,HashOperations<String,String,T> hashOperation */) {
Map<Object, Object> map = redisTemplate.opsForHash().entries(key);
/* Map<String, T> map = hashOperation.entries(key); */
return map;
}
/**
* 缓存Map
*
* @param key
* @param dataMap
* @return
*/
public void setCacheIntegerMap(String key, Map<Integer, Object> dataMap) {
HashOperations<String, Object, Object> hashOperations = redisTemplate.opsForHash();
if (null != dataMap) {
for (Map.Entry<Integer, Object> entry : dataMap.entrySet()) {
/*
* System.out.println("Key = " + entry.getKey() + ", Value = " +
* entry.getValue());
*/
hashOperations.put(key, entry.getKey(), entry.getValue());
}
}
}
/**
* 获得缓存的Map
*
* @param key
* @param hashOperation
* @return
*/
public Map<Object, Object> getCacheIntegerMap(String key/* ,HashOperations<String,String,T> hashOperation */) {
Map<Object, Object> map = redisTemplate.opsForHash().entries(key);
/* Map<String, T> map = hashOperation.entries(key); */
return map;
}
/**
* 从hash中删除指定的存储
*
* @param String
* @return 状态码,1成功,0失败
*/
public long deleteMap(String key)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Spring-session+Redis.zip (53个子文件)
redis-desktop-manager-0.8.8.384.exe 27.18MB
Redis-x64-3.2.100.zip 4.98MB
Spring-session-data-redis
src
test
java
com
SpringJunitTest.java 1KB
SessionTestCase.java 884B
main
webapp
WEB-INF
jsp
common
taglibs.jspf 143B
test.jsp 515B
web.xml 3KB
index.jsp 369B
static
page
js
test.js 0B
resources
applicationContext-session.xml 1008B
springServletContext.xml 2KB
applicationContext.xml 5KB
application.properties 658B
applicationContext-redis.xml 3KB
log4j.properties 982B
java
core
service
BaseServiceImpl.java 759B
BaseService.java 291B
dao
BaseDaoImpl.java 1KB
BaseDao.java 283B
util
RedisUtil.java 10KB
config
RedisManagerConfig.java 1KB
com
service
DictService.java 241B
impl
DictServiceImpl.java 2KB
controller
TestController.java 2KB
dao
impl
DictDaoImpl.java 253B
DictDao.java 132B
util
GsonUtil.java 2KB
entity
Dict.java 2KB
.git
logs
HEAD 199B
refs
heads
master 199B
remotes
origin
HEAD 199B
packed-refs 107B
info
exclude 240B
lfs
tmp
objects
objects
logs
index 4KB
objects
pack
pack-f078c8bf3ab3645cc471a924cb84b02a9da6429e.idx 4KB
pack-f078c8bf3ab3645cc471a924cb84b02a9da6429e.pack 22KB
info
HEAD 23B
config 345B
FETCH_HEAD 116B
refs
heads
master 41B
tags
remotes
origin
HEAD 32B
hooks
pre-applypatch.sample 424B
pre-push.sample 1KB
commit-msg.sample 896B
pre-commit.sample 2KB
applypatch-msg.sample 478B
prepare-commit-msg.sample 1KB
update.sample 4KB
post-update.sample 189B
pre-rebase.sample 5KB
pre-receive.sample 544B
description 73B
pom.xml 7KB
共 53 条
- 1
资源评论
- xuzhaoshan2018-01-18很全面 很新
- haiyangyiba2019-06-26感谢分享。。。
- goto_2172018-02-06可以,谢谢
- cc201501262018-04-27垃圾。。。。
五月一
- 粉丝: 3
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功