Jedis使用+jedis再封装

一 、Redis初始化(RedisStart.class


package com.ciri.cache;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by guo on 16-6-3.
 */
public class RedisStart {

    /**
     * 链接线
     */

    private Jedis jedis = null;

    /**
     * 链接池
     */

    private JedisPool jedisPool = null;

    /**
     * Redis ip
     */

    private String ip = "127.0.0.1";

    /**
     * 构造函数
     */

    public RedisStart() {
        initialPool();
        jedis = jedisPool.getResource();
    }

    /**
     * 链接池初始化
     */

    private void initialPool() {
        // 池基本配置
        JedisPoolConfig config = new JedisPoolConfig();
        //config.(20);
        config.setMaxIdle(30);
        config.setMaxWaitMillis(1000l);
        config.setTestOnBorrow(false);
        jedisPool = new JedisPool(config, ip, 6379);
    }

    /**
     * 获得链接线程
     * @return
     */

    public Jedis getJedis()
    {
      return jedis;
    }

    /**
     * 获得链接池
     * @return
     */

    public JedisPool getJedisPool()
    {
        return jedisPool;
    }

}


二、Hash类的再封装(HashCach.class)


package com.ciri.cache;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class HashCache {

    /**
     * 客户端链接
     */
    private Jedis jedis;

    /**
     * 链接池
     */
    private JedisPool jedisPool;

    /**
     * 构造函数
     *
     * @param jedis 链接线
     * @param jedisPool 链接池
     */

    public HashCache(Jedis jedis,JedisPool jedisPool) {
        this.jedis = jedis;
        this.jedisPool = jedisPool;
    }

    /**
     *向名称为key的hash中添加元素fied————value
     *
     * @param key 标示创建的hash
     * @param field hash中的key
     * @param value 与field对应的value值
     * @return 插入成功返回true.插入失败返回fasle
     */

    public boolean put(String key,String field,String value) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                jedis.hset(key,field,value);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     *返回名称为key的hash中field对应的value
     *
     * @param key 标示一个hash表
     * @param field  hash表中的key
     * @return  找到返回value,找不到返回false
     */

    public String get(String key,String field) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null){
                return jedis.hget(key,field);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
            }else{
                jedisPool.close();
            }
        }
        return null;
    }

    /**
     *删除名称为key的hash中键为value的值
     *
     * @param key 标示hash的名称
     * @param field hash的键值
     * @return 删除成功返回true,删除失败返回false
     */

    public boolean remove(String key,String field) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null)
            {
                jedis.hdel(key,field);
            }
        } catch (Exception e)
        {
            flag = false;
            e.printStackTrace();
        }finally {
            if(flag)
            {
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     *为名称为key的Hash表设置有效时间
     *
     * @param key 标示hash表
     * @param second 有效时间,秒为单位
     * @return 设置成功返回true,设置失败返回false
     */

    public boolean put(String key,int second) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                if(jedis.exists(key))
                {
                    jedis.expire(key, second);
                }
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

}


三、List的再封装(ListCache.class)


package com.ciri.cache;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.List;

/**
 * Created by guo on 16-6-3.
 */
public class ListCache {
    /**
     * 客户端链接
     */
    private Jedis jedis;

    /**
     * 链接池
     */
    private JedisPool jedisPool;

    /**
     * 构造函数
     *
     * @param jedis 链接线
     * @param jedisPool 链接池
     */

    public ListCache(Jedis jedis,JedisPool jedisPool) {
        this.jedis = jedis;
        this.jedisPool = jedisPool;
    }

    /**
     * 在名称为key的list头添加一个值为value的元素
     *
     * @param key list的名称
     * @param value 插入的值
     * @return 插入成功返回true,插入失败返回false
     */

    public boolean lput(String key, String value) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                jedis.lpush(key,value);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 在名称为key的list尾添加一个值为value的元素
     *
     * @param key list的名称
     * @param value 插入的值
     * @return 插入成功返回true,插入失败返回false
     */

    public boolean rput(String key, String value) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                jedis.rpush(key,value);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 在名称为key的list中index位置的元素重新赋值为wvalue
     *
     * @param key list的名称
     * @param index 插入的下标
     * @param value 插入的值
     * @return 插入成功返回true,插入失败返回false
     */

    public boolean put(String key, long index,String value) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
                if (jedis != null) {
                    long length = jedis.llen(key);
                    if(jedis.exists(key)&&index<=length&&index>=1)
                    {
                        jedis.lset(key, index, value);
                    }
                }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 为List设置有效时间
     *
     * @param key list的名称
     * @param time list的有效时间
     * @return 设置成功返回true,设置失败返回false
     */

    public boolean put(String key,int time) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null){
                if(jedis.exists(key)) {
                    jedis.expire(key, time);
                }else {
                    flag = false;
                }
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            } else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 返回名称为key的list中index位置的元素的值
     *
     * @param key list的名称
     * @param index List的下标值
     * @return 设置成功返回true,设置失败返回false
     */

    public String get(String key,long index) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null){
                return jedis.lindex(key,index);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
            }else{
                jedisPool.close();
            }
        }
        return null;
    }

    /**
     * 获得start——end之间的元素值,start默认从1开始,当start=1,end=0时获取全部的元素
     *
     * @param key list的名称
     * @param start 开始下标
     * @param end 结束下标
     * @return 取得成功返回true,取得失败返回false
     */

    public List<String> get(String key, long start, long end){
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null){
                return jedis.lrange(key,start,end);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
            }else{
                jedisPool.close();
            }
        }
        return null;
    }

    /**
     * 删除名称为key的list中的首元素
     *
     * @param key list的名称
     * @return 删除成功返回true,删除失败返回false
     */

    public boolean lremove(String key)
    {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null)
            {
                jedis.lpop(key);
            }
        } catch (Exception e)
        {
            flag = false;
            e.printStackTrace();
        }finally {
            if(flag)
            {
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 删除名称为key的list中的尾元素
     *
     * @param key list的名称
     * @return 删除成功返回true,删除失败返回false
     */

    public boolean rremove(String key)
    {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null)
            {
                jedis.rpop(key);
            }
        } catch (Exception e)
        {
            flag = false;
            e.printStackTrace();
        }finally {
            if(flag)
            {
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 删除count个名称为key的List中值为value的元素
     * count为0,删除所有值为value的元素
     * count>0从头到尾count个值为value的元素
     * count<0从尾到头count个值为value的元素
     *
     * @param key list的名称
     * @param count 删除情景标志
     * @param value 删除的value
     * @return
     */

    public boolean remove(String key,long count,String value)
    {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null)
            {
                jedis.lrem(key,count,value);
            }
        } catch (Exception e)
        {
            flag = false;
            e.printStackTrace();
        }finally {
            if(flag)
            {
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }
}


四、Set的再封装(SetCache.class)


package com.ciri.cache;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Set;

/**
 * Created by guo on 16-6-3.
 */
public class SetCache {
    /**
     * 客户端链接
     */

    private Jedis jedis;

    /**
     * 链接池
     */

    private JedisPool jedisPool;

    /**
     * 构造函数
     *
     * @param jedis 链接线
     * @param jedisPool 链接池
     */

    public SetCache(Jedis jedis,JedisPool jedisPool)
    {
        this.jedis = jedis;
        this.jedisPool = jedisPool;
    }

    /**
     *向set集合中加入元素
     *
     * @param key set的名称
     * @param value 插入的值
     * @return 插入成功返回true,插入失败返回false
     */

    public boolean put(String key, String value) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                jedis.sadd(key,value);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     *获得set集合的所有元素
     *
     * @param key set的名称
     * @return 获得成功返回true,获得失败返回null
     */

    public Set<String> getAllSet(String key) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null){
                return jedis.smembers(key);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
            }else{
                jedisPool.close();
            }
        }
        return null;
    }

    /**
     *删除set集合中的某个元素
     *
     * @param key set的名称
     * @param value 删除的值
     * @return 删除成功返回true,删除失败返回false
     */

    public boolean remove(String key,String value)
    {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null)
            {
                jedis.srem(key,value);
            }
        } catch (Exception e)
        {
            flag = false;
            e.printStackTrace();
        }finally {
            if(flag)
            {
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 设置set集合的有效时间
     *
     * @param key set的名称
     * @param second set的有效时间,单位为秒
     * @return 设置成功返回true,设置失败返回false
     */

    public boolean put(String key,int second) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                if(jedis.exists(key))
                {
                    jedis.expire(key, second);
                }
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }
}

五、String的再封装(StringCache.class)

package com.ciri.cache;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class StringCache {

    /**
     * 客户端链接
     */

    private Jedis jedis;

    /**
     * 链接池
     */

    private JedisPool jedisPool;

    /**
     * 构造函数
     *
     * @param jedis 链接线
     * @param jedispool 链接池
     */
    public StringCache(Jedis jedis,JedisPool jedispool) {
        this.jedis = jedis;
        this.jedisPool = jedispool;
    }

    /**
     * 向名称为key的String中插入元素
     *
     * @param key String的名称
     * @param value 插入的值
     * @return 插入成功返回true,插入失败返回false
     */

    public boolean put(String key, String value) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                jedis.set(key, value);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 获得名称为key的元素的值
     *
     * @param key String的名称
     * @return 执行成功返回value,执行失败返回null
     */

    public String get(String key) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null){
                return jedis.get(key);
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                 jedis.close();
        }else{
                jedisPool.close();
        }
        }
        return null;
    }

    /**
     * 删除名称为key的String元素
     * @param key String的名称
     * @return 删除成功返回true,删除失败,返回false
     */

    public boolean remove(String key)
    {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis != null)
            {
                jedis.del(key);
            }
        } catch (Exception e)
        {
            flag = false;
            e.printStackTrace();
        }finally {
            if(flag)
            {
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    /**
     * 插入元素,并且设置元素的有效时间
     *
     * @param key String的名称
     * @param value 插入的值
     * @param second 有效时间,单位为秒;
     * @return 执行成功返回true,执行失败返回false
     */

    public boolean put(String key, String value,int second) {
        boolean flag = true;
        Jedis jedis = jedisPool.getResource();
        try{
            if(jedis!=null){
                jedis.set(key, value);
                if(jedis.exists(key))
                {
                    jedis.expire(key, second);
                }
            }
        }catch(Exception e){
            flag = false;
            e.printStackTrace();
        }finally{
            if (flag){
                jedis.close();
                return true;
            }else{
                jedisPool.close();
            }
        }
        return false;
    }

    }









  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值