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的更多相关文章

  1. Jedis操作Redis数据库

    添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...

  2. 四、Jedis操作Redis

    前言:  原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...

  3. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

  4. jedis操作redis的几种常见方式总结

    Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...

  5. Jedis操作Redis技巧详解

    对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...

  6. Java中Jedis操作Redis与Spring的整合

    Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...

  7. Redis入门和Java利用jedis操作redis

    Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...

  8. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  9. (转)Java中使用Jedis操作Redis

    转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...

随机推荐

  1. org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir

    1.错误描述 org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir svn: Co ...

  2. 芝麻HTTP:Python爬虫利器之Xpath语法与lxml库的用法

    安装 ​pip install lxml 利用 pip 安装即可 XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPat ...

  3. spring mvc 之@requestmapping

    引言: 前段时间项目中用到了REST风格来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/j ...

  4. 【Luogu1337】平衡点(模拟退火)

    [Luogu1337]平衡点(模拟退火) 题面 洛谷 题解 和BZOJ3680吊打XXX是一样的.. 但是数据很强呀.. 疯狂调参 各种WA... 很无奈呀.... #include<iostr ...

  5. c#抽取pdf文档标题(3)

    上一篇介绍了整体流程以及利用库读取pdf内容形成字符集合.这篇着重介绍下,过滤规则,毕竟我们是使用规则过滤,最后得到标题的. 首先看归一化处理,什么是归一化呢?就是使结果始终处于0-1之间(包括0,1 ...

  6. 构造方法里的super()方法

    为什么经常会遇到有的构造函数会有super(),而有的却没有,其实super就比如 对数函数,log的底数为10,如果为10 ,我们可写可不写,如果不为10,那么我们就要加上底数 在子类构造方法中,s ...

  7. html备战春招の一

    html不是一种编程语言,而是一种标记语言,通过使用标签来标记网页. 对于中文网页需要使用 <meta charset="utf-8"> 声明编码,否则会出现乱码.有些 ...

  8. 关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】

    最近徘徊在找工作和继续留任的纠结之中,在朋友的怂恿下去参加了一次面试,最后一道题目是: 写一个函数,输入一个字符串的运算式,返回计算之后的结果.例如这样的: '1 + (5 - 2) * 3',计算出 ...

  9. cxGrid_Q31584 cxgrid 拖放移动记录

    cxgrid 拖放移动记录,cxgrid 拖放,cxgrid 拖动记录,cxgrid 鼠标拖动记录 这是cxgrid开发公司回复客户时所发送的源码项目,用于实现鼠标拖动记录,改变记录在表格中的位置,所 ...

  10. git 使用方式

    一.常用操作命令 1.初始化操作 git config --global user.name '<name>' # 设置提交者名称 git config --global user.ema ...