暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JAVA使用jedis连接redis

大学生IT学习之家 2019-06-09
514

1.打开redis服务端


2.下载需要的jar(或maven)


jar1链接:http://commons.apache.org/proper/commons-pool/download_pool.cgi

jar2链接https://mvnrepository.com/artifact/redis.clients/jedis

3.配置连接池资源

首先看一下源码:

可以看到配置类继承了GenericObjectPoolConfig,这也是为什么要导入commons-pool这个jar

配置参数:




// 服务器ip地址


private static String ADDR = "127.0.0.1";





// 端口


private static int PORT = 6379;





// 密码


private static String PASSWORD = "";





// 连接实例的最大连接数


private static int MAX_ACTIVE = 1024;





// 连接池中能存在状态为空闲的个数


private static int MAX_IDLE = 200;





// 等待超时时间,单位毫秒


private static int MAX_WAIT = 2000;





// 连接超时的时间


private static int TIMEOUT = 3000;





// 在borrow一个jedis实例时,是否提前进行validate操作,如果为true得到的实例均是可用的


private static boolean TEST_ON_BORROW = true;


复制

    4.加载配置并创建连接池



    // 连接池


    private static JedisPool jpool = null;





    /*


    * 初始化连接池


    */


    static {


    try {


    JedisPoolConfig config = new JedisPoolConfig();


    config.setMaxWaitMillis(MAX_WAIT);


    config.setMaxIdle(MAX_IDLE);


    config.setMaxTotal(MAX_ACTIVE);


    config.setTestOnBorrow(TEST_ON_BORROW);


    jpool = new JedisPool(config, ADDR, PORT, TIMEOUT);


    } catch (Exception e) {


    e.printStackTrace();


    }


    }


    复制

    通过饿汉模式单例创建连接池。

    5.获取Jedis实例

    有了这个实例就可以对redis进行操作了,并且jedis也提供了回收方法。

    /*
    * 获取Jedis实例
    */
    public static Jedis getJedis() {
    if (jpool != null) {
    return jpool.getResource();
    } else {
    return null;
    }
    }


    /*
    * 回收Jedis
    */
    public static void returnJedis(final Jedis jedis) {
    if (jedis != null) {
    jpool.returnResource(jedis);
    }
    }
    复制

    6.测试



    public class Operation {


    public static void main(String[] args) {


    Jedis jedis = Connections.getJedis();


    jedis.set("java", "测试");


    System.out.println(jedis.get("java"));


    Connections.returnJedis(jedis);


    }


    }


    复制

    这样一个简单的demo就成功了。

    全部代码:

    /*
    *获取连接的类
    */


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


    public class Connections {
    // 服务器ip地址
    private static String ADDR = "127.0.0.1";


    // 端口
    private static int PORT = 6379;


    // 密码
    private static String PASSWORD = "";


    // 连接实例的最大连接数
    private static int MAX_ACTIVE = 1024;


    // 连接池中能存在状态为空闲的个数
    private static int MAX_IDLE = 200;


    // 等待超时时间,单位毫秒
    private static int MAX_WAIT = 2000;


    // 连接超时的时间
    private static int TIMEOUT = 3000;


    // 在borrow一个jedis实例时,是否提前进行validate操作,如果为true得到的实例均是可用的
    private static boolean TEST_ON_BORROW = true;


    // 连接池
    private static JedisPool jpool = null;


    /*
    * 初始化连接池
    */
    static {
    try {
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxWaitMillis(MAX_WAIT);
    config.setMaxIdle(MAX_IDLE);
    config.setMaxTotal(MAX_ACTIVE);
    config.setTestOnBorrow(TEST_ON_BORROW);
    jpool = new JedisPool(config, ADDR, PORT, TIMEOUT);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }


    /*
    * 获取Jedis实例
    */
    public static Jedis getJedis() {
    if (jpool != null) {
    return jpool.getResource();
    } else {
    return null;
    }
    }


    /*
    * 回收Jedis
    */
    public static void returnJedis(final Jedis jedis) {
    if (jedis != null) {
    jpool.returnResource(jedis);
    }
    }
    }
    /*
    *测试类
    */
    import redis.clients.jedis.Jedis;


    public class Operation {
    public static void main(String[] args) {
    Jedis jedis = Connections.getJedis();
    jedis.set("java", "测试");
    System.out.println(jedis.get("java"));
    Connections.returnJedis(jedis);
    }
    }
    复制



文章转载自大学生IT学习之家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论