jedis客户端连接池pool,分片连接池ShardedJedisPool

1.概述

为了减少频繁创建底层jedis对象销毁造成的资源浪费,jedis客户端提供了连接池pool解决这个问题

2.连接池

在目前阶段不管是单个Jedis对象,还是分片对象ShardedJedis都是一个对象,应用效率不高,在实际应用中,总要从代码中new出来然后用完了要关闭close.应该引入连接池

3.JedisPool

一次性创建多个jedis对象,都是连接一个节点的,用的时候从连接池中获取连接,用完了还回连接,提升对象的使用效率,不必频繁的创建销毁对象

/*

    JedisPool

     */

    @Test

    public void test05(){

        JedisPool pool=new JedisPool("10.9.118.11",6380);

        //获取连接资源

        Jedis jedis1 = pool.getResource();

        jedis1.set("name","张三");

        pool.returnResource(jedis1);

        Jedis jedis2 = pool.getResource();

        System.out.println(jedis2.get("name"));

        pool.returnResource(jedis2);

    }

4.ShardedJedisPool

如果说JedisPool管理了一批jedis对象,ShardedJedisPool管理了一批ShardedJedis

 

/*

    分片连接池

     */

    @Test

    public void test06(){

        //提供分片节点信息

        List<JedisShardInfo> infos=new ArrayList<>();

        infos.add(new JedisShardInfo("10.9.118.11",6379));

        infos.add(new JedisShardInfo("10.9.118.11",6380));

        infos.add(new JedisShardInfo("10.9.118.11",6381));

        //连接池配置属性

        JedisPoolConfig config=new JedisPoolConfig();

        //定义连接池的连接上限,最大空闲,最小空闲,不同的使用环境这些数值配置不一样的

        config.setMaxIdle(8);

        config.setMinIdle(2);

        config.setMaxTotal(200);

        //创建连接池

        ShardedJedisPool pool=new ShardedJedisPool(config,infos);

        ShardedJedis resource = pool.getResource();

        //可以实现api操作,分布式计算

        pool.returnResource(resource);

    }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值