java 执行redis的部分方法
@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的部分方法的更多相关文章
- 使用 Java 执行 groovy 脚本或方法
1. 引入依赖 <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groo ...
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...
- java 执行 jar 包中的 main 方法
java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...
- Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
[请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...
- Java执行main方法,异常为:could not find the main class.program will exit
未解决. Java执行方法,异常为:could not find the main class.program will exitmain 原文地址:http://rogerfederer.iteye ...
- 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用
java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...
- Java执行shell脚本并返回结果两种方法的完整代码
Java执行shell脚本并返回结果两种方法的完整代码 简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用) 执行复杂的 ...
- 基于Java Agent的premain方式实现方法耗时监控(转),为了找到结论执行:premain在jvm启动的时候执行,所有方法前,会执行MyAgent的premain方法
Java Agent是依附于java应用程序并能对其字节码做相关更改的一项技术,它也是一个Jar包,但并不能独立运行,有点像寄生虫的感觉.当今的许多开源工具尤其是监控和诊断工具,很多都是基于Java ...
- Java连接redis的使用演示样例
Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...
随机推荐
- OrchardNoCMS
基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap 按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这 ...
- 关于迭代器及yield的用法
1.foreach语句 C#编译器会把foreach语句转换为IEnumerable接口的方法和属性. foreach (Person p in persons) { Console.WriteLin ...
- linux的运行级别
一.linux共有七种运行级别,内容如下: 级别0:停机状态,系统默认运行级别如果设为0,将不能正常启动: 级别1:单用户模式,只允许root用户对系统进行维护: 级别2:多用户模式,但没有NFS(h ...
- 动手Jquery插件
自己动手Jquery插件 最近Web应用程序中越来越多地用到了JQuery等Web前端技术.这些技术框架有效地改善了用户的操作体验,同时也提高了开发人员构造丰富客户 端UI的效率.JQuery本身提供 ...
- 列表类型转换(ConvertList<TSource, TResult>)
性能优化-列表类型转换(ConvertList<TSource, TResult>) 2013-12-16 16:55 by stevey, 426 阅读, 7 评论, 收藏, 编辑 之前 ...
- 企业架构研究总结(34)——TOGAF架构内容框架之架构制品(下)
4.2.31 数据生命周期图(Data Lifecycle Diagram) 数据生命周期图是在业务流程的约束之下对业务数据在其整个生命周期(从概念阶段到最终退出)中对其进行管理的核心部分.数据从本质 ...
- 苹果icloud邮箱抓取
1 icloud登录,与其他网站登录区别 1.1 支持pop抓取的邮箱:pop提供统一接口,抓取简单: 1.2 没有前端js加密的邮箱(139,126,163):只要代码正确模拟登录流程,参数正确 ...
- Clob类型转换成String类型
oracle中表结构如下: create table GRID_RESOURCE ( ID VARCHAR2(50), CNNAME VARCHAR2(50), TYPE VARCHAR2(50), ...
- DRP项目总结
DRP项目在6号就已经完工了,总共花费了一个半月的时间,从对java的懵懵懂懂,到现在的略微熟悉,对整个java web开发的认知,清晰了很多.涉及到的web项目开发的必备知识,也都有一次得到锻炼和提 ...
- HDU--杭电--3415--Max Sum of Max-K-sub-sequence--队列--双向队列
Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...