【Redis】Redis客户端Jedis

目录

Jedis的基本用法:

Jedis直连

JedisPool:

比较


Jedis 是 Redis 官方首选的 Java 客户端开发包。

Jedis的基本用法:

Jedis直连

pom文件中引入:

<dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
public class JedisTest {
    @Test
    public void jedis1(){
        //创建连接Redis服务器的客户端
        Jedis jedis = new Jedis("127.0.0.1",6379);
        jedis.set("hello","world");
        String value = jedis.get("hello");
        System.out.println(value);
    }
}

jedis直连方式,每次都会新建TCP连接,使用后再断开连接,对于频繁访问Redis的场景显然不是高效的使用方式。

 

JedisPool:

使用连接池方式对Jedis连接进行管理。Jedis对象预先存放在池子中(JedisPool),每次要连接Redis,只需要在池子中借,用完了再归还给池子。

 

JdeisPool这个类作为对Jedis的连接池,使用了Apache的通用对象池工具common-pool作为资源的管理工具。

public class JedisPoolTest {
    @Test
    public void jedis2(){
        GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
        //初始化Jedis连接池
        JedisPool jedisPool = new JedisPool(poolConfig,"192.168.25.129",6379);

        Jedis jedis = null;
        try{
            //从连接池获取jedis对象
            jedis = jedisPool.getResource();
            //执行操作
            jedis.get("hello");
        }catch (Exception e){
            System.out.println(e.getMessage());
        }finally {
            if (jedis != null){
                // 使用JedisPool ,close操作不是关闭连接,代表归还连接池
                jedis.close();
            }
        }
    }
}

 

使用JedisPool ,close操作不是关闭连接,代表归还连接池。

  dataSource != null 代表使用的是连接池,jedis.close()代表归还连接给连接池。

  dataSource = null 代表直连,jedis.close()代表关闭连接

GenericObjectPoolConfig使用的是默认配置,实际它提供了很多参数

 

比较

Jedis直连

Jedis连接池(Jedis Pool)

每次都会新建TCP连接,使用后再断开连接,存在每次新建/关闭TCP连接的开销连接池的方式是可以预先初始化好Jedis连接,所以每次只需要从Jedis连接池借用即可,而借用和归还操作是在本地进行的,只有少量的并发同步开销,远远小于新建TCP连接的开销。

无法限制Jedis对象的个数,极端情况下可能会造成连接泄露

可以有效保护和控制资源的使用

Jedis对象线程不安全

 

简单方便,适用于少量长期连接的场景

使用相对麻烦,尤其在资源的管理上需要很多参数来保证,一旦规划不合理也会出现问题

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值