Jedis的使用及配置优化

如题所述

第1个回答  2022-07-16
jedis就是基于java语言的redis客户端,集成了redis的命令操作,提供了连接池管理。
redis-cli是redis官方提供的客户端,可以看作一个shell程序,它可以发送命令对redis进行操作。
对于jedis同理是使用java语言操作redis,双方都遵循redis提供的协议,按照协议开发对应的客户端。

jedis直连,本质是定义一个tcp连接,然后使用socket技术进行通信

每次操作创建一个jedis对象,执行完毕后关闭连接,对应的就是一次Tcp连接。

预先生成一批jedis连接对象放入连接池中,当需要对redis进行操作时从连接池中借用jedis对象,操作完成后归还。这样jedis对象可以重复使用,避免了频繁创建socket连接,节省了连接开销。

这里只是对连接池进行一个简单使用,实际开发通常会对JedisPool进行封装,进行一些参数配置和方法定义等,在使用Jedis API时,也会对常用API进行封装,方便程序调用

对于企业级开发来说,连接池的合理使用是非常重要的,如果设置不当会引起很多不必要的麻烦,容易造成线上的故障。
其实关于配置是一个比较难或者说没有确定答案的部分,这里只能给出一些思路和解决一些异常的方法。

为了方便使用,Jedis提供了 JedisPoolConfig ,它本身继承了 GenericObjectPoolConfig 设置了一些空闲监测设置

其实这个参数是比较难确定的,举个例子:

对于适合的maxTotal而言,我们需要考虑

无法从资源池获取到资源,原因是获取空闲连接超时了。

无法从资源池获取到资源,原因是池子中资源已经耗尽了。
相似回答