Java封装reids方法

1.封装方法 


public class RedisService {
    private JedisPool jedisPool;

    public RedisService(JedisPool jedisPool) {
        this.jedisPool = jedisPool;
    }
//获取redis数据源

    public <T> T execute(Function<Jedis, T> function) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            return function.callBack(jedis);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return null;
    }

    /**
     * Atomically return and remove the first (LPOP) or last (RPOP) element of the list. For example
     * if the list contains the elements "a","b","c" LPOP will return "a" and the list will become
     * "b","c".
     * <p/>
     * If the key does not exist or the list is already empty the special value 'nil' is returned.
     *
     * @param key
     * @return Bulk reply
     */
    public String lpop(final String key) {
        return execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                return jedis.lpop(key);

            }
        });
    }

   /* public  String set1(final String key){
        return  execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                return redis.;
            }
        });
    }*/

    public String set(final String key, final String value) {
        return execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                return jedis.set(key, value);
            }
        });
    }

    public String set(final String key, final Object value) {
        return execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                if (value instanceof String) {
                    return jedis.set(key, String.valueOf(value));
                } else {
                    return jedis.set(key, JSON.toJSONString(value, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty));
                }
            }
        });
    }

    public String get(final String key) {
        return execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                return jedis.get(key);
            }
        });
    }

    public Long lpush(final String key, final String value) {
        return execute(new Function<Jedis, Long>() {
            @Override
            public Long callBack(Jedis jedis) throws IOException {
                return jedis.lpush(key, value);
            }
        });
    }

    public List<String> lrange(final String key, final int start, final int end) {
        return execute(new Function<Jedis, List<String>>() {
            @Override
            public List<String> callBack(Jedis jedis) throws IOException {
                return jedis.lrange(key, start, end);
            }
        });
    }

    public Long lrem(final String key, final Long count, final String value) {
        return execute(new Function<Jedis, Long>() {
            @Override
            public Long callBack(Jedis jedis) throws IOException {
                return jedis.lrem(key, count, value);
            }
        });
    }


    public String set(final String key, final String value, final long timeout, final TimeUnit unit) {
        return execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                String result = jedis.set(key, value);
                jedis.expire(key, Long.valueOf(TimeoutUtils.toSeconds(timeout, unit)).intValue());
                return result;
            }
        });
    }


    public String set(final String key, final String value, final long timeout) {
        return execute(new Function<Jedis, String>() {
            @Override
            public String callBack(Jedis jedis) throws IOException {
                String result = jedis.set(key, value);
                jedis.expire(key, Long.valueOf(timeout).intValue());
                return result;
            }
        });
    }

    public Long expire(final String key, final long timeout, final TimeUnit unit) {
        return execute(new Function<Jedis, Long>() {
            @Override
            public Long callBack(Jedis jedis) throws IOException {
                return jedis.expire(key, Long.valueOf(TimeoutUtils.toSeconds(timeout, unit)).intValue());
            }
        });
    }

    public long del(final String key) {
        return execute(new Function<Jedis, Long>() {
            @Override
            public Long callBack(Jedis jedis) throws IOException {
                return jedis.del(key);
            }
        });
    }

}

2.规范接口

public interface Function<K, T> {
    T callBack(K k) throws IOException;
}

 

 

转载于:https://my.oschina.net/121lyyllm/blog/742621

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值