Jedis操作Redis

时间:2022-11-11 20:52:37

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;
}