Jedis操作API

Redis越來越常用,是不是還不瞭解一些常用方法,是不是在處理業務需求時,想不到一些簡便方法,趕緊來看看文章吧。廢話不多說,上代碼!方法沒寫那麼全,後續慢慢完善。

package com.redistest;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.Before;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

public class CacheManager {

    private Jedis jedis;

    @Before
    public void init() {
        this.jedis = new Jedis(new JedisShardInfo("redis IP地址", 6379));
    }

    public String get(final String key) {
        return jedis.get(key);
    }

    public String set(final String key, final String value, final int expire) {
        String ret = jedis.set(key, value);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public String set(final String key, final byte[] value, final int expire) {
        String ret = jedis.set(key.getBytes(), value);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public byte[] getByte(final String key) {
        byte[] obj = jedis.get(key.getBytes());
        return obj;
    }

    public List<String> mget(final String... keys) {
        List<String> list = jedis.mget(keys);
        return list;
    }

    public String mset(final String... keyValues) {
        String result = jedis.mset(keyValues);
        return result;
    }

    public Long incr(final String key, final int expire) {
        Long ret = jedis.incr(key);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public Long incrby(String key, int decrement, int expire) {
        Long ret = jedis.incrBy(key, decrement);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public Long decr(final String key, final int expire) {
        if (jedis.exists(key)) {
            Long ret = jedis.decr(key);
            if (expire > 0) {
                jedis.expire(key, expire);
            }
            return ret;
        }
        return null;
    }

    public Long del(final String... keys) {
        Long ret = jedis.del(keys);
        return ret;
    }

    public List<String> lrange(final String key) {
        return lrange(key, 0, -1);
    }

    public List<String> lrange(final String key, final int start, final int end) {
        List<String> list = jedis.lrange(key, start, end);
        return list;

    }

    public long lpush(final int expire, final String key, final String... values) {
        long ret = 0L;
        ret = jedis.lpush(key, values);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public void rpush(final int expire, final String key, final String... values) {
        jedis.rpush(key, values);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
    }

    public void lrem(final String key, final String value) {
        lrem(key, 0, value);
    }

    public void lrem(final String key, final int count, final String value) {
        jedis.lrem(key, 0, value);
    }

    /**
     * smembers key 返回集合 key中的所有成員。 不存在的 key被視爲空集合。
     */
    public Set<String> smembers(final String key) {
        Set<String> obj = jedis.smembers(key);
        return obj;
    }

    /**
     * sadd key member [member ...] 將一個或多個 member元素加入到key 當中, 已經存在於集合的
     * member元素將被忽略.假如 key不存在,則創建一個包含 member元素作成員的集合
     */
    public long sadd(final String key, final String[] value, final int expire) {
        long ret = 0L;
        ret = jedis.sadd(key, value);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public long sadd(final String key, final String value, final int expire) {
        return sadd(key, new String[] { value }, expire);
    }

    /**
     * srem key member [member ...] 移除集合 key中的一個或多個 member元素,不存在的 member元素會被忽略。
     * 當 key不是集合類型,返回一個錯誤
     */
    public long srem(final String key, final String... value) {
        long ret = 0L;
        ret = jedis.srem(key, value);
        return ret;
    }

    /**
     * sdiff key[key ...]返回一個集合的全部成員,該集合是所有給定集合之間的差集。不存在的 key被視爲空集
     */
    public Set<String> sdiff(final String... keys) {
        Set<String> obj = jedis.sdiff(keys);
        return obj;
    }

    /**
     * srandmember key [count] 如果命令執行時,只提供了 key 參數,那麼返回集合中的一個隨機元素。 從 Redis 2.6
     * 版本開始, SRANDMEMBER 命令接受可選的 count 參數:如果 count 爲正數,且小於集合基數,那麼命令返回一個包含 count
     * 個元素的數組,數組中的元素各不相同。如果 count 大於等於集合基數,那麼返回整個集合。 如果 count
     * 爲負數,那麼命令返回一個數組,數組中的元素可能會重複出現多次,而數組的長度爲 count 的絕對值.該操作和 spop相似,但 spop
     * 將隨機元素從集合中移除並返回,而 srandmember則僅僅返回隨機元素,而不對集合進行任何改動
     */
    public List<String> srandmember(String key, int count) {
        List<String> obj = jedis.srandmember(key, count);
        return obj;
    }

    /**
     * scard key 返回集合 key的元素的數量
     */
    public Long scard(String key) {
        Long obj = jedis.scard(key);
        return obj;
    }

    /**
     * sismember key member 判斷 member元素是否集合 key的成員。
     */
    public Boolean sismember(String key, String value) {
        Boolean obj = jedis.sismember(key, value);
        return obj;
    }

    public String hmset(final String key, final Map<String, String> map, final int expire) {
        String ret = jedis.hmset(key, map);
        if (expire > 0) {
            jedis.expire(key, expire);
        }
        return ret;
    }

    public Map<String, String> hgetAll(final String key) {
        return jedis.hgetAll(key);
    }

    public Set<String> zrevrangebyscore(final String key, final double max, final double min, final int offset,
            final int count) {
        Set<String> obj = jedis.zrevrangeByScore(key, max, min, offset, count);
        return obj;
    }

    public String hget(final String key, final String field) {
        return jedis.hget(key, field);
    }

    public Long hset(final String key, final String field, final String value) {
        return jedis.hset(key, field, value);
    }

    public Long hdel(final String key, final String... fields) {
        return jedis.hdel(key, fields);
    }

    public Set<String> getKeys(final String pattern) {
        return jedis.keys(pattern);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章