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. 五种基于RGB色彩空间统计的皮肤检测算法

    最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题 网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤 的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于 ...

  2. Java注释分类

    Java注释分类 1.单行注释    //打印结果    System.out.println("结果是:"+result); 2.多行注释    /**     * @autho ...

  3. dojo中表格行隐藏出错

    1.错误描述 TypeError:role._by_idx[e.rowIndex].hide is not a function           (54 out of range 3) 2.错误原 ...

  4. 芝麻HTTP:Python爬虫入门之URLError异常处理

    1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用try-except语句来包围并捕获相应的异常.下 ...

  5. hdu5977 Garden of Eden

    都不好意思写题解了 跑了4000多ms 纪念下自己A的第二题 (我还有一道freetour II wa20多发没A...呜呜呜 #include<bits/stdc++.h> using ...

  6. Error Curves HDU - 3714

    Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a m ...

  7. Win Form不能响应键盘事件

    在窗体属性中,将KeyPreview设置为true

  8. JavaScript设计模式(3)-工厂模式

    工厂模式 1. 简单工厂 简单工厂:使用一个类或对象封装实例化操作 假如我们有个自行车商店类 BicycleShop,它提供了销售自行车的方法可以选择销售两类自行车 Speedster,Comfort ...

  9. C#图解教程 第十四章 事件

    事件 发布者和订阅者源代码组件概览声明事件订阅事件触发事件标准事件的用法 通过扩展EventArgs来传递数据移除事件处理程序 事件访问器 事件 发布者和订阅者 很多程序都有一个共同的需求,既当一个特 ...

  10. RobotFramework下HttpLibrary库其它关键字

    关键字 使用描述 DELETE 向服务器端发送http delete请求,该请求接收一个参数[ url ],请求的方式和post请求非常类似,示例: DELETE /_utils/config.htm ...