zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    SQL SERVER将指定表中的指定字段按照(,)逗号分隔
    关于百度 UEditor的使用
    关于jquery的 $("form").serialize()和 new FormData表单序列化
    mvc5 + ef6 + autofac搭建项目(repository+uow)(二)
    (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片
    sql查看数据库表使用情况
    EF FluentAPI映射一对多 关系时候报错
    (转载)Javascript 进阶 作用域 作用域链
    (转载)loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
    [moka学习笔记]yii2.0 rules的用法(收集,不定期更新)
  • 原文地址:https://www.cnblogs.com/aeolian/p/8557251.html
Copyright © 2011-2022 走看看