@Autowired
private RedisTemplate<String, Object> redisTemplate; public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
protected RedisSerializer<String> getRedisSerializer(){
return redisTemplate.getStringSerializer();
}/**
* 添加用户
*/
@Override
public boolean addUser(final UserVo user,final String sessionId) throws Exception {
boolean result=redisTemplate.execute(new RedisCallback<Boolean>() {
@Override
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer =getRedisSerializer();
byte[] key = serializer.serialize(sessionId);
byte[] user1=null;
try {
user1 = SerializableUtils.toByteArray(user);
} catch (Exception e) {
e.printStackTrace();
}
connection.append(key, user1);
return true;
}
});
return result;
} /**
* 查询用户
*/
@Override
public UserVo getUserVo(final String string) throws Exception {
UserVo result=redisTemplate.execute(new RedisCallback<UserVo>() {
@Override
public UserVo doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer =getRedisSerializer();
byte[] key = serializer.serialize(string);
byte[] value = connection.get(key);
if(value==null){
return null;}
UserVo user=null;
try {
user=(UserVo) SerializableUtils.fromByteArray(value);
} catch (Exception e) {
e.printStackTrace();
}
return user;
}
});
return result;
}
//添加字符串
@Override
public Boolean addString(final String key,final String value) throws Exception {
boolean result=redisTemplate.execute(new RedisCallback<Boolean>() {
@Override
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer =getRedisSerializer(); byte[] k = serializer.serialize(key);
byte[] v=null;
try {
v = SerializableUtils.toByteArray(value);
} catch (Exception e) {
e.printStackTrace();
}
connection.append(k, v);
return true;
}
}); return result;
} /**
* 查询字符串
*/
@Override
public String getString(final String key) throws Exception {
String result=redisTemplate.execute(new RedisCallback<String>() {
@Override
public String doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer =getRedisSerializer();
byte[] keys = serializer.serialize(key);
byte[] value = connection.get(keys);
if(value==null){
return null;
}
String str=null;
try {
str=(String) SerializableUtils.fromByteArray(value);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
});
return result;
} /**
* 查询字符串
*/
@Override
public Set<String> getKeys(String pattern){
Set<String> keys = redisTemplate.keys(pattern);
return keys;
}
/**
* 删除key
*/
@Override
public Boolean delete(final String key) {
boolean result=redisTemplate.execute(new RedisCallback<Boolean>() {
@Override
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer=getRedisSerializer();
byte[] k = serializer.serialize(key);
connection.del(k);
return true;
}
});
return result;
}
  //更新字符串
@Override
public Boolean updateString(final String key,final String value) {
if(key==null){
throw new NullPointerException("数据行不存在, key = " + key);
}
boolean result=redisTemplate.execute(new RedisCallback<Boolean>() {
@Override
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer=getRedisSerializer();
byte[] k = serializer.serialize(key);
byte[] v=null;
try {
v = SerializableUtils.toByteArray(value);
connection.set(k, v);
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
});
return result;
}
  //设置过期时间
@Override
public void setTime(final String key, final int liveTime) {
redisTemplate.execute(new RedisCallback<Object>() {
public Long doInRedis(RedisConnection connection) throws DataAccessException {
if (liveTime > 0) {
RedisSerializer<String> serializer=getRedisSerializer();
byte[] k = serializer.serialize(key);
connection.expire(k, liveTime);
}
return 1L;
}
});
}

java 执行redis的部分方法的更多相关文章

  1. 使用 Java 执行 groovy 脚本或方法

    1. 引入依赖 <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groo ...

  2. Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)

    Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...

  3. java 执行 jar 包中的 main 方法

    java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...

  4. Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次

    [请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...

  5. Java执行main方法,异常为:could not find the main class.program will exit

    未解决. Java执行方法,异常为:could not find the main class.program will exitmain 原文地址:http://rogerfederer.iteye ...

  6. 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用

    java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...

  7. Java执行shell脚本并返回结果两种方法的完整代码

    Java执行shell脚本并返回结果两种方法的完整代码 简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用) 执行复杂的 ...

  8. 基于Java Agent的premain方式实现方法耗时监控(转),为了找到结论执行:premain在jvm启动的时候执行,所有方法前,会执行MyAgent的premain方法

    Java Agent是依附于java应用程序并能对其字节码做相关更改的一项技术,它也是一个Jar包,但并不能独立运行,有点像寄生虫的感觉.当今的许多开源工具尤其是监控和诊断工具,很多都是基于Java ...

  9. Java连接redis的使用演示样例

    Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...

随机推荐

  1. Windows 下让 Python 多个版本共存(支持 pip)

    转载自 http://blog.kgzx.net/index.php/archives/40/ 因为类库兼容性的关系,写实际项目时都是用 Python 2,但自己试验性的写点小东西还是喜欢用 Pyth ...

  2. java数字字符串累加1的解决方案

    近期操作项目遇到这样的问题,研究了下搞出了一个解决方案. //num也可以是在数字字符串里面截取的,比如我有14位的数字字符串前六位是市级,7,8位代表县区,后两位代表乡镇,最后四位是累计+1的,这个 ...

  3. 【GitHub】在Mac上配置/使用Github

    以前一直听说过Github,但是自己一直不会用.最近不是太忙,于是想捣鼓捣鼓Github,没想到用了将近3个小时,才在Mac上配置成功. 首先简单介绍一下Git和Github 集中化的版本控制系统( ...

  4. UNIX基础知识--<<UNIX 环境编程>>读书笔记

    1 shell程序就是位于应用软件与系统调用之间的程序   每个用户登录系统,系统就会为用户分配shell (用户的登录的口令文件 在  /etc/passwd 2 ls filename  运行原理 ...

  5. Unknown

    鉴于自己的直觉总是很准,所以这次再相信一次好了 T1:我觉得极有可能考到的是 1.对于栈,队列的模拟: 2.数论(不是像gcd那样的题目,而是加法原理乘法原理斥容,或是极具数学推导的东西,当然有可能用 ...

  6. C# 利用反射动态创建对象——带参数的构造函数和String类型

    C# 利用反射动态创建对象——带参数的构造函数和String类型 最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好, ...

  7. 迟到的 WPF 学习 —— 路由事件

    1. 理解路由事件:WPF 通过事件路由(event routing)概念增强了传统的事件执行的能力和范围,允许源自某个元素的事件由另一个元素引发,例如,事件路由允许工具栏上的一个按钮点击的事件在被代 ...

  8. 异步执行Dos命令

    //Minute const ; /// <summary> /// 执行命令行 /// </summary> /// <param name="cmdLine ...

  9. 异常信息:java.lang.OutOfMemoryError: PermGen space

    修改TOMCAT_HOME/bin/catalina.sh 在"echo "Using CATALINA_BASE:    $CATALINA_BASE""上面 ...

  10. HTML + Javascript开发AIR应用

    HTML + Javascript开发AIR应用 目录 背景什么是AIR?环境准备运行效果开发过程目录结构应用程序描述符HTML页面调试备注 背景返回目录 断断续续用Winform和WPF开发过一些小 ...