JAVA创建jedis连接池

简介

前面一篇文章介绍了Linux环境下安装配置Redis环境,如果有需要的可以点击下面连接查看
https://blog.csdn.net/chenshuo1234/article/details/102907325
本文主要介绍的是如何在开发过程中,如何通过Jeids连接池运用Redis实现我们所需要的业务。

pom文件



        
        
            junit
            junit
            4.12
            test
        
        
        
        
            redis.clients
            jedis
            3.1.0
        
    

创建Jedis连接池

package com.cs.rediscluster.utils;

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

/***
 *Jedis连接池工具类
 */
public class JedisPoolUtil {

    /**
     * 声明连接池对象,声明成static类型,保证项目在启动时,就加载连接池
     */
    private static JedisPool pool;

    /***
     * Jedis连接池连接的最大值
     */
    private static int maxTotal = 20;

    /***
     * Jedis连接池中最大的空闲连接数
     */
    private static int maxIdel = 20;

    /***
     * Jedis连接池中最小的空闲连接数
     */
    private static int miniIdel = 10;

    /**
     * IP地址
     */
    private static String ip = "127.0.0.1";
    /**
     * 端口号
     */
    private static int port = 6379;

    /**
     * 初始化Jedis连接池
     */
    public static void initJedisPool(){

        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(maxTotal);
        config.setMaxIdle(maxIdel);
        config.setMinIdle(miniIdel);

        //创建连接池,超时时间为2秒
        pool = new JedisPool(config,ip,port,2000);

    }

    /**
     * 静态代码块初始化连接池
     */
    static {
        initJedisPool();
    }

    /**
     * 从连接池中获取Jedis连接
     * @return jedis连接
     */
    public static Jedis getJedis(){
        return pool.getResource();
    }


    /**
     * 回收jedis连接
     * @param jedis  需要关闭的jedis连接对象
     */
    public static void returnJedis(Jedis jedis) {
        //3.0之前所用的归还连接方式,现在使用close
        // pool.returnResource(jedis);
        if ( null != jedis ) {
            jedis.close();
        }
    }
}

JAVAUtil类

这里只封装了String类型的添加删除,以及判断key值是否存在,其他的可以自行进行拓展

package com.cs.utils.jedis;

import redis.clients.jedis.Jedis;


/***
 * Jedis工具类
 */
public class JedisUtil {


    /**
     * 设置Strring类型的值
     * @param key
     * @param value
     * @return
     */
    public static boolean setKey(String key, String value) {

        Jedis jedis = null;

        try {
            jedis = JedisPoolUtil.getJedis();
            String set = jedis.set(key, value);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            JedisPoolUtil.returnJedis(jedis);
        }
        return true;

    }


    /***
     * 获取String类型的值
     * @param key
     * @return
     */
    public static String getValue(String key) {

        Jedis jedis = null;
        String value = "";
        try {
            jedis = JedisPoolUtil.getJedis();
            value = jedis.get(key);
            return value;
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            JedisPoolUtil.returnJedis(jedis);
        }
        return value;
    }

    /***
     * 根据key值删除数据,可批量删除
     * @param keys
     * @return
     */
    public static boolean delKey (String... keys) {
        Jedis jedis = null;
        try {
            jedis = JedisPoolUtil.getJedis();
            jedis.del(keys);
            return true;
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            JedisPoolUtil.returnJedis(jedis);
        }
        return false;
    }


    /**
     * 判断key值是否存在
     * @param key
     * @return
     */
    public static boolean isExists(String key) {
        Jedis jedis = null;
        boolean isExists = false;
        try{
            jedis = JedisPoolUtil.getJedis();
            isExists = jedis.exists(key);
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            JedisPoolUtil.returnJedis(jedis);
        }
        return isExists;
    }


}

测试类编写与运行结果

测试代码

package com.cs.util.jedis;

import com.cs.utils.jedis.JedisUtil;
import org.junit.Test;
import redis.clients.jedis.Jedis;

public class JedisTest {

    @Test
    public void testAdd(){
        JedisUtil.setKey("username","zhangsan");
        System.out.println(JedisUtil.isExists("username"));
        System.out.println(JedisUtil.getValue("username"));
    }

    @Test
    public void testDel() {
        JedisUtil.delKey("username");
        System.out.println(JedisUtil.isExists("username"));
        System.out.println(JedisUtil.getValue("username"));
    }
}

运行结果

JAVA创建jedis连接池_第1张图片

你可能感兴趣的:(Redis,java,redis,连接)