Java封裝Redis常用操作


package com.advance.Redis;

import org.apache.log4j.Logger;
import org.testng.annotations.Test;
import redis.clients.jedis.Jedis;

import java.util.*;

/**
 * @Author: 谷天樂
 * @Date: 2019/2/25 17:17
 * @Gratitude: wudalang_gd
 * @Description: 根據原生Jedis封裝常用工具
 */
public class RedisUtil{
    private static Logger logger = Logger.getLogger(RedisUtil.class);
    private static final String ip = "localhost";
    private static final Integer port = 6379;
    //獲取連接
    public  Jedis connection() throws Exception{
        Jedis jedis = new Jedis(ip,port);
        return jedis;
    }


    //為string添加元素
    public void set(String key, String value) throws Exception {
        Jedis jedis = connection();
        jedis.set(key,value);

    }

    //獲取string
    public String get(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.get(key);
    }


    //追加string
    public void append(String key, String value) throws Exception {
        Jedis jedis = connection();
        jedis.append(key,value);
    }

    //添加set
    public void sadd(String key, Set<String> value) throws Exception {
        Jedis jedis = connection();
        for(String str: value){
            jedis.sadd(key, str);
        }
    }

    //set刪除指定元素
    public void srem(String key, Set<String> value) throws Exception {
        Jedis jedis = connection();
        Iterator<String> it = value.iterator();
        while(it.hasNext()){
            String str = it.next();
            jedis.srem(key, str);
        }
    }

    //獲取key對應的value總數
    public Long scard(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.scard(key);
    }

    //獲取key對應的所有value
    public Set<String> smembers(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.smembers(key);
    }

    //判斷set是否存在
    public boolean sismember(String key, String value) throws Exception {
        Jedis jedis = connection();
        return jedis.sismember(key,value);
    }

    //隨機獲取數據
    public String srandmember(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.srandmember(key);
    }



    //向list添加元素
    public void lpush(String key, List<String> list) throws Exception {
        Jedis jedis = connection();
        for(String s: list){
            jedis.lpush(key,s);
        }
    }

    //獲取list
    public List<String> lrange(String key, Integer start, Integer end)
            throws Exception {
        Jedis jedis = connection();
        return jedis.lrange(key, start, end);
    }

    //刪除任意類型的key
    public void del(String key) throws Exception {
        Jedis jedis = connection();
        jedis.del(key);
    }

    //設置map
    public void hmset(String key, Map<String, String> map) throws Exception {
        Jedis jedis = connection();
        jedis.hmset(key,map);
    }

    //獲取map的key的個數
    public Long hlen(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.hlen(key);
    }

    //獲取map中所有key
    public Set<String> hkeys(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.hkeys(key);
    }

    //獲取map中所有value
    public List<String> hvals(String key) throws Exception {
        Jedis jedis = connection();
        return jedis.hvals(key);
    }

    //獲取map中的指定key的value
    public List<String> hmget(String key, String... params)
            throws Exception {
        Jedis jedis = connection();
        if (null == params || params.length == 0) {
            throw new RuntimeException(this.getClass().getSimpleName()+  "::"
                    + new Exception().getStackTrace()[0].getMethodName()+"參數不能為空");
        }
        return jedis.hmget(key,params);
    }

    //獲取map所有的key和value
    public Map<String, String> hgetAll(String key)
            throws Exception {
        Jedis jedis = connection();
        return jedis.hgetAll(key);
    }

    //刪除指定key的map
    public void hdel(String key, String... params) throws Exception {
        Jedis jedis = connection();
        if (null == params || params.length == 0) {
            throw new RuntimeException(this.getClass().getSimpleName()+  "::"
                    + new Exception().getStackTrace()[0].getMethodName()+"參數不能為空");
        }
        jedis.hdel(key,params);
    }


    //測試string
    @Test
    public void testString() throws Exception{
        RedisUtil r = new RedisUtil();
        r.set("z", "wb");
        String s = r.get("z");
        logger.debug(s);
    }

    //測試set
    @Test
    public void testList() throws Exception{
        RedisUtil r = new RedisUtil();
        List<String> list = new ArrayList<>();
        list.add("w");
        list.add("b");
        r.lpush("list",list);
        List<String> t = r.lrange("list",0,-1);
        logger.debug(t);
    }

    //測試set
    @Test
    public void testSet() throws Exception{
        RedisUtil r = new RedisUtil();
        Set<String> set = new HashSet<String>();
        set.add("w");
        set.add("b");
        r.sadd("set",set);
        Set<String> t = r.smembers("set");
        logger.debug(t);
    }

    //測試map
    @Test
    public void mapTest() throws Exception {
        RedisUtil r = new RedisUtil();
        Map <String,String> map = new HashMap<>();
        map.put("Red Alert 3","Long live Soviet");
        map.put("Starcraft","No one can undie");
        map.put("PUBG","Keep breath");
        r.hmset("Game",map);
        r.hdel("Game","Starcraft");
        Map <String,String> m = r.hgetAll("Game");
        logger.debug(m);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM