Redis客户端使用技巧,Redis连接池原理

2020-01-23  本文已影响0人  javap

Redis客户端

Jedis

①Jedis版本
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
②Jedis使用须知

在实际项目中推荐使用try catch finally的形式来进行代码的书写:一方面可以在Jedis出现异常的时候(本身是网络操作),将异常进行捕获或者抛出;另一个方面无论执行成功或者失败,将Jedis连接关闭掉,在开发中关闭不用的连接资源是一种好的习惯。

③连接池JedisPool

Jedis连接池使用方式:


Jedis直连与连接池对比:

Jedis提供了JedisPool这个类作为对Jedis的连接池,同时使用了Apache
的通用对象池工具common-pool作为资源的管理工具
场景一:从连接池中取出Jedis,操作完成后未及时还回连接池
客户端属性

Redis服务器与客户端连接成功后,都会创建一个client对象保存道歉客户端的信息。可通过输入client list命令查看:



输出每行命令都是代表一个客户端信息,每行中都有十几个属性,它们是客户端的执行状态,理解这些属性对于Redis的开发和运维非常有帮助。

输入缓冲区:qbuf、qbuf-free

Redis为每个客户端分配了输入缓冲区,作用是将客户端发送的命令临时保存,同时会从输入缓冲区读取命令并执行,它为Redis服务器提供了缓冲功能。
Redis无法配置输入缓冲区的大小,输入缓冲区会根据输入内容大小的不同动态调整,但是总体大小不能超过1G。


输入缓存区使用不当产生的问题:
命令参数

在服务器将客户端发送deep命令请求保存到输入缓冲区后,服务器对命令请求的内容进行解析得出命令参数以及命令参数的个数分别保存到客户端的argv和argc中。
client对象属性:

client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

客户端类型

客户端监控

上一篇 下一篇

猜你喜欢

热点阅读