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 ...
随机推荐
- free 或delete后指针怎么样了
free()和delete()只是把指针所指向的内存释放掉,但是并没有把指针本身删除,也没有把指针置为NULL; #include<iostream> using namespace st ...
- Caused by: java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger
1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...
- 序列化Json格式
Json = JsonUtil.Serialize(new { code = 1, msg = "文件删除成功" }); public class JsonUtil { ...
- 启动就加载(一)----注解方式实现的。static项目启动的时候就加载进来(一般用于常用参数)
一,案例 1.1,图片分析 1.2,代码 1.2.1,编写加载系统参数的servlet public class SysInitServlet extends HttpServlet { public ...
- ls -l 显示年份
默认情况下ls -l命令只显示月和日,不显示年份: $ ls -llrwxrwxrwx 1 root root 7 Feb 27 16:12 bin -> usr/bin 如要要显示年份,就要使 ...
- 转:SQL进阶之变量、事务、存储过程与触发器
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 DECLARE @name varchar(20) DECLARE @id int (2)为变量赋值 SET ...
- ASP.NET 初识Cookie
1.ASP.NET中使用Cookie 0.说明 Cookie存在客户端电脑上,Session存在服务器上,所以保存登录信息等敏感信息时不能使用Cookie,用户个性化设置可以使用Cookie 1.新建 ...
- RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用
Get Network Connection Status关键字用来获取手机的网络连接状态.在获取到连接状态后,会返回不同的数字. Set Network Connection Status关键字用来 ...
- 分享到JavaScript
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Gedit : 我的开场白 [TPLY]
为什么用Gedit 在学校的高一新生里,好像就只有我使用Gedit 大家都笑我是"用记事本编程的人" 我就想 到考场看看你们笑得出来不 先放一个高配emacs配置 (global- ...