1. 程式人生 > 實用技巧 >Java Redis系列3(Jedis的使用+jedis連線池技術)

Java Redis系列3(Jedis的使用+jedis連線池技術)

Jedis的使用

什麼是Jedis?

一款Java操作redis資料庫的工具

使用步驟

1.下載redis所需的java包
2.使用步驟

import org.junit.Test;
public class Jedis {
    @Test
    public void test1(){
        //獲取連線
        //如果使用空參構造,預設值 "localhost",6379埠
        redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
        //設定資料
        jedis.set("name","zhangsna");
        //關閉連線
        jedis.close();
    }
}

Jedis操作不同的redis中的資料結構

1.字串

設定:set
獲取:get

import org.junit.Test;
public class Jedis {
    @Test
    public void test1(){
        //獲取連線
        redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
        //設定資料
        jedis.set("name","zhangsna");
        //獲取引數
        String name = jedis.get("name");;
        //關閉連線
        jedis.close();
    }
}

2.hash型別:map格式

import org.junit.Test;
import java.util.Map;
public class Jedis {
    @Test
    public void test1(){
        //獲取連線
        //如果使用空參構造預設是localhost,3670埠
        redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
        //設定資料
        jedis.hset("user","name","zhangsan");
        jedis.hset("user","id","13");
        //獲取資料
        jedis.hget("user","name");
        //獲取全部資料
        Map<String, String> user = jedis.hgetAll("user");
        //關閉連線
        jedis.close();
    }
}

3.列表型別list

import org.junit.Test;
public class Jedis {
    @Test
    public void test1(){
        //獲取連線
        //如果使用空參構造預設是localhost,3670埠
        redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
        //設定資料
        //左邊新增資料
       jedis.lpush("list","a");
       //右邊新增資料
       jedis.rpush("list","b");
       //獲取指定範圍內的資料
        jedis.lrange("list" ,0,-1);
       //移除最右邊的資料並返回值
        String list = jedis.rpop("list");
        //移除最左邊的資料並返回值
        String list1 = jedis.lpop("list");
        //關閉連線
        jedis.close();
    }
}

4.集合型別:set 不允許重複元素

import org.junit.Test;
import java.util.Set;
public class Jedis {
    @Test
    public void test1(){
        //獲取連線
        //如果使用空參構造預設是localhost,3670埠
        redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
        //設定資料
       jedis.sadd("set","a");
       jedis.sadd("set","b");
       //獲取集合中的全部資料
        Set<String> set = jedis.smembers("set");
        //移除集合中的指定資料
       jedis.srem("a");
        //關閉連線
        jedis.close();
    }
}

5.有序集合型別:sortedset 不允許重複元素,且集合有序

import org.junit.Test;
import java.util.Set;
public class Jedis {
    @Test
    public void test1(){
        //獲取連線
        //如果使用空參構造預設是localhost,3670埠
        redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
        //設定資料
       jedis.zadd("sortedset",2,"a");
       jedis.zadd("sortedset",1,"b");
       //獲取集合中的全部資料
       jedis.zrange("sortedset",0,-1);
        //移除集合中的指定資料
        jedis.zrem("sortedset", "a");
        //關閉連線
        jedis.close();
    }
}

Jedis連線池技術

import org.junit.Test;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Jedis {
    @Test
    public void test1(){
        //建立一個配置物件
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //設定引數
        //最大空閒數
        jedisPoolConfig.setMaxIdle(50);
        //最大連線數
        jedisPoolConfig.setMaxTotal(50);
        //建立資料庫連線池物件
        JedisPool pool= new JedisPool(jedisPoolConfig, "localhost", 6379);
        //獲取連線
        redis.clients.jedis.Jedis resource = pool.getResource();
        //使用
        resource.set("username","zhangsan");
        //歸還連線到資料庫連線池
        resource.close();
    }
}

使用工具類建立資料庫連線池

配置檔案資訊(放在src目錄下)

host:127.0.0.1
port:6379
maxTotal:50
maxIdle:10

工具類程式碼

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class JedisUtil {
    private static JedisPool jedisPool;
    //使用靜態程式碼塊載入配置檔案
    static {
        //讀取配置檔案
        InputStream resourceAsStream = JedisUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
        //建立properties物件
        Properties properties = new Properties();
       //關聯檔案
        try {
            properties.load(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //建立配置檔案物件
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
        jedisPoolConfig.setMaxIdle(Integer.parseInt("maxIdle"));
        //初始化jedispool
        jedisPool=new JedisPool(jedisPoolConfig,properties.getProperty("host"),Integer.parseInt(properties.getProperty("port")));

    }
    //獲取連線
    public static  JedisPool getJedisPool(){
        return  jedisPool;
    }
}

測試類程式碼

import org.junit.Test;
import redis.clients.jedis.JedisPool;
public class Jedis {
    @Test
    public void test1(){
        //使用工具類獲取連線池
        JedisPool jedisPool = JedisUtil.getJedisPool();
        //獲取連線
        redis.clients.jedis.Jedis resource = jedisPool.getResource();
        //使用連線操作
        resource.set("name", "zhangsan");
        //歸還連線
    }
}

以上就是jedis的一些基礎操作及怎麼使用jedis連線池,這也是我JAVA redis系列的第三篇,後面我會繼續更新,寫作不易,請各位老鐵點個贊支援一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀