Jedis操作Redis
Jedis操作Redis的常用封装方法
@Resource(name="jedispool")
private JedisPool pool=null;
/**
* 设置缓存对象过期时间
* @param key 缓存的key
* @param seconds 秒,多少秒后过期自动销毁
*/
public boolean expireKey(String key,int seconds){
Jedis jedis=null;
ObjectOutputStream w=null;
ByteArrayOutputStream b=null;
try{
jedis=pool.getResource();
long result=jedis.expire(key.getBytes("utf-8"), seconds);
return result>1;
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{if(jedis!=null){pool.returnResourceObject(jedis);}}catch(Exception ex){}
try{b.close();}catch(Exception ex){}
try{w.close();}catch(Exception ex){}
}
return false;
} /**
* 查询缓存对象还有多少秒过期
* @param key 缓存对象的key
* @return 剩余秒数。 如果key不存在返回-2,如果没有为key设置过期时间返回-1
*/
public long selectGqTime(String key){
Jedis jedis=null;
ObjectOutputStream w=null;
ByteArrayOutputStream b=null;
try{
jedis=pool.getResource();
return jedis.ttl(key.getBytes("utf-8"));
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{if(jedis!=null){pool.returnResourceObject(jedis);}}catch(Exception ex){}
try{b.close();}catch(Exception ex){}
try{w.close();}catch(Exception ex){}
}
return -1;
} /**
* 向缓存添加对象
* @param key
* @param obj
*/
public void setObject(String key,Serializable obj){
Jedis jedis=null;
ObjectOutputStream w=null;
ByteArrayOutputStream b=null;
try{
jedis=pool.getResource();
b=new ByteArrayOutputStream();
w=new ObjectOutputStream(b);
w.writeObject(obj);
w.flush();
b.flush();
byte[] data=b.toByteArray();
jedis.set(key.getBytes("utf-8"), data);
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{if(jedis!=null){pool.returnResourceObject(jedis);}}catch(Exception ex){}
try{b.close();}catch(Exception ex){}
try{w.close();}catch(Exception ex){}
}
} /**
* 从缓存中获取对象
* @param key
* @return
*/
public Object getObject(String key){
Jedis jedis=null;
ObjectInputStream w=null;
ByteArrayInputStream b=null;
try{
jedis=pool.getResource();
if(jedis.exists(key.getBytes("utf-8"))){
byte[] data=jedis.get(key.getBytes("utf-8"));
b=new ByteArrayInputStream(data);
w=new ObjectInputStream(b);
Object obj=w.readObject();
return obj;
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{if(jedis!=null){pool.returnResourceObject(jedis);}}catch(Exception ex){}
try{b.close();}catch(Exception ex){}
try{w.close();}catch(Exception ex){}
}
return null;
} /**
* 删除缓存对象
* @param key
*/
public void delObject(String key){
Jedis jedis=null;
try{
jedis=pool.getResource();
jedis.del(key.getBytes("utf-8"));
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{if(jedis!=null){pool.returnResourceObject(jedis);}}catch(Exception ex){}
}
} public JedisPool getPool() {
return pool;
} public void setPool(JedisPool pool) {
this.pool = pool;
}
Jedis操作Redis的更多相关文章
- Jedis操作Redis数据库
添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...
- 四、Jedis操作Redis
前言: 原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- jedis操作redis的几种常见方式总结
Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
- Jedis操作Redis技巧详解
对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...
- Java中Jedis操作Redis与Spring的整合
Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- (转)Java中使用Jedis操作Redis
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
随机推荐
- java访问权限修饰符
作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × ja ...
- Windows平台 python 常用包的安装
1. yaml 从http://pyyaml.org/wiki/PyYAML下载对应版本的exe,直接安装就可以. 2. pip 从https://pypi.python.org/pypi/pip#d ...
- 异常-----freemarker.core.ParseException: Token manager error
一,案例一 1.1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: L ...
- PortableApps使用入门
PortableApps使用入门 Software 介绍 添加软件 绿软下载站推荐 介绍 官网:http://portableapps.com/ PortableApps作为一款卓越的绿软管理软件,它 ...
- Redis之String
一.Redis之String简介 1. String是redis最基本的数据类型,一个key对应一个value. 2. String是二进制安全的,可以包含任何数据,例如图片或序列化的对象. 3. S ...
- Windows Developer Day - MSIX and Advanced Installer
前面一篇我们介绍了 Adaptive Cards 的基础知识,而在 Windows Developer Day 的 Modern Application Experience 环节,还有一个需要划重点 ...
- python 数据结构简介
栈(stack) 定义: 数据集合,只能在一端(首尾)进行删除和插入的列表. 特点: 后进先出(LIFO) 典型作用: 括号匹配:左括号进栈,右括号跟左括号对应则出栈,例如:(({{[]}}))匹配 ...
- web前端UI框架
分类:WEB前端 时间:2016年1月13日 目前,众多互联网公司APP都嵌入了大量的HTML5,移动端的开发越来越重视,HTML5的运用场景也越来越多了.在移动WEB开发的过程中,使用合适的移动WE ...
- 'net’ 不是内部命令或外部命令,也不是可运行的程序或批处理文件
我的电脑-->属性-->高级-->环境变量 path的变量值新加: %SystemRoot%\system32 修改完成后,需要重新打开cmd命令行,否则不会生效的.
- 无需安装Oracle Client连接Oracle数据库
介绍 当我们采用 ODP.NET 检索Oracle 数据库的时候,Oracle客户端是必须安装.假如当时电脑上没有安装Oracle客户端,就不能这么用了,这时候Oracle.ManagedDataAc ...