@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. swfupload多文件上传[附源码]

    swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项 ...

  2. C#打包应用程序

    摘要:本文介绍在C#中手把手教你用C#打包应用程序(安装程序卸载程序) 1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点 ...

  3. C#自定义配置文件节点

    老实说,在以前没写个自定义配置节点之前,我都是写到一个很常用的节点里面,就是appSettings里add,然后再对各个节点的value值进行字符串分割操作,根据各种分割字符嵌套循环处理,后来看到一些 ...

  4. 【ios开发】ios开发问题集锦

    1. ARC forbids explicit message send of'release' 'release' is unavailable: not available inautomatic ...

  5. json序列化NHibernate的实体

    在使用nhibernate时,想将实体对象序列化成json字符串,然后打印在日志中. 序列化时会出现问题,应该是因为这个实体被hibernate管理的原因.具体原因没有分析. 解决方案:为实体创建一个 ...

  6. Mac 下ll命令 command not found

    在linux下习惯使用ll.la.l等ls别名的童鞋到mac os提示command not found -461deMacBook-Pro:~ root# cd ~ -461deMacBook-Pr ...

  7. PHP gbk转换成utf8

    /** * GBK ASCII 转换成utf8 */ public function to_utf8($str){ $detect = array('ASCII', 'GBK', 'UTF-8'); ...

  8. [转]Intercepting the App Store's Traffic on iOS

    Source:https://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/ TL;D ...

  9. CLR的组成和运转

    CLR的组成和运转 clr基本 CLR(Common Language Runtime)是一个可由多种编程语言使用的“运行时”.(例如:c#,c++/cli,vb,f#,ironpython,iron ...

  10. 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理

    为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...