package com.redis.base.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
public abstract class AbstractBaseRedisService<K, V> implements BaseRedisService {
@Autowired
protected RedisTemplate<K, V> redisTemplate;
/**
* 设置redisTemplate
*
* @param redisTemplate
* the redisTemplate to set
*/
public void setRedisTemplate(RedisTemplate<K, V> redisTemplate) {
this.redisTemplate = redisTemplate;
}
/**
* 获取 RedisSerializer <br>
* ------------------------------<br>
*/
protected RedisSerializer<String> getRedisSerializer() {
return redisTemplate.getStringSerializer();
}
/**
* 新增 <br>
* ------------------------------<br>
*
* @param user
* @return
*/
@Override
public boolean add(final String Key, final String value) {
boolean result = false;
if (Key != null && !"".equals(Key)) {
result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
byte[] key = serializer.serialize(Key);
byte[] name = serializer.serialize(value);
return connection.setNX(key, name);
}
});
}
return result;
}
/**
* 批量新增
* ------------------------------<br>
*
* @param list
* @return
*/
@Override
public boolean add(final List<Map<String, String>> list) {
boolean result = false;
if (list != null && list.size() > 0) {
result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
for (Map<String, String> map : list) {
for (Entry<String, String> m : map.entrySet()) {
byte[] key = serializer.serialize(m.getKey());
byte[] name = serializer.serialize(m.getValue());
connection.setNX(key, name);
}
}
return true;
}
}, false, true);
}
return result;
}
/**
* 删除 <br>
* ------------------------------<br>
*
* @param key
*/
@Override
public void delete(final String key) {
if (key != null && !"".equals(key)) {
List<String> list = new ArrayList<String>();
list.add(key);
delete(list);
}
}
/**
* 删除多个 <br>
* ------------------------------<br>
*
* @param keys
*/
@Override
public void delete(final List<String> keys) {
if (keys != null && keys.size() > 0) {
redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
for (String key : keys) {
byte[] keyByte = serializer.serialize(key);
connection.del(keyByte);
}
return true;
}
}, false, true);
}
}
/**
* 修改 <br>
* ------------------------------<br>
*
* @param user
* @return
*/
@Override
public boolean update(final String Key, final String value) {
if (get(Key) == null) {
throw new NullPointerException("数据行不存在, key = " + Key);
}
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
byte[] key = serializer.serialize(Key);
byte[] name = serializer.serialize(value);
connection.set(key, name);
return true;
}
});
return result;
}
/**
* 通过key获取 <br>
* ------------------------------<br>
*
* @param keyId
* @return
*/
@Override
public Map<String, String> get(final String keyId) {
Map<String, String> result = new HashMap<String, String>();
if(keyId != null && !"".equals(keyId)) {
result = redisTemplate.execute(new RedisCallback<Map<String, String>>() {
public Map<String, String> doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
byte[] key = serializer.serialize(keyId);
byte[] value = connection.get(key);
if (value == null) {
return null;
}
String valueS = serializer.deserialize(value);
Map<String, String> map = new HashMap<String, String>();
map.put(keyId, valueS);
return map;
}
});
}
return result;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
RedisTest.zip (49个子文件)
RedisTest
pom.xml 6KB
target
test-classes
com
redis
classes
spring-mybatis.xml 4KB
redis.properties 163B
spring-mvc.xml 2KB
jdbc.properties 299B
com
redis
base
service
AbstractBaseRedisService$4.class 2KB
AbstractBaseRedisService$3.class 2KB
AbstractBaseRedisService$5.class 2KB
AbstractBaseRedisService.class 4KB
AbstractBaseRedisService$2.class 3KB
BaseRedisService.class 593B
AbstractBaseRedisService$1.class 2KB
test
RedisTest
user
RedisTest
RedisJunitTest.class 5KB
dao
UserDao.class 222B
bean
User.class 1KB
UserMapper.xml 360B
service
IUserService.class 285B
impl
UserServiceImpl.class 976B
sql
redistest.sql 380B
spring-reids.xml 2KB
.settings
com.genuitec.eclipse.migration.prefs 78B
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 367B
org.eclipse.core.resources.prefs 315B
org.eclipse.wst.common.component 668B
org.eclipse.wst.common.project.facet.core.prefs.xml 161B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 522B
org.eclipse.jdt.core.prefs 430B
src
test
java
main
webapp
META-INF
MANIFEST.MF 39B
WEB-INF
lib
index.jsp 834B
resources
spring-mybatis.xml 4KB
redis.properties 163B
spring-mvc.xml 2KB
jdbc.properties 299B
sql
redistest.sql 380B
spring-reids.xml 2KB
java
com
redis
base
service
AbstractBaseRedisService.java 5KB
BaseRedisService.java 1KB
user
RedisTest
RedisJunitTest.java 5KB
dao
UserDao.java 155B
bean
User.java 784B
UserMapper.xml 360B
service
IUserService.java 242B
impl
UserServiceImpl.java 600B
.project 2KB
.classpath 1KB
.myeclipse
profiler
.tern-project 66B
共 49 条
- 1
资源评论
- xingxing19092019-07-06还可以,值得看
- rainbowcheng2017-05-04好像没有redis
- m0_370357482018-04-12找了很久,谢谢楼主!
- chenxudong792017-10-20还可以,值得看
小当家e
- 粉丝: 12
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功