适合的maxTotal

1、业务希望Redis并发量

2、客户端执行命令时间

3、Redis资料:例如nodes(例如应用个数)*maxTotal是不能超过redis的最大连接数。(config get maxclients)

4、资源开销:例如虽然希望控制空闲连接,但是不希望因为连接池的频繁释放创建连接造成不必要开销。

 

优化IO的几种方法

1、命令本身优化:例如慢查询的keys、hgetall bigkey

2、减少网络通信次数

3、降低接入成本:例如客户端长连接/连接池、NIO等

 

四种批量优化的方法

1、串行mget

2、串行IO

3、并行IO

4、hash_tag

 

redis连接数瓶颈 redis连接池调优_python

 

redis连接数瓶颈 redis连接池调优_redis连接数瓶颈_02

 

redis连接数瓶颈 redis连接池调优_python_03

redis连接数瓶颈 redis连接池调优_数据库_04

 

四种方案优缺点分析:

方案

优点

缺点

网络IO

串行mget

编程简单

少量keys满足需求

大量keys请求延迟严重

O(keys)

串行IO

编程简单

少量节点满足需求

大量node延迟严重

O(nodes)

并行IO

利用并行特性

延迟取决于最慢的节点

利用

编程复杂

超市定位问题难

O(max_slow(node))

hash_tag

性能最高

读写增加tag维护成本

tag分布易出现数据倾斜

O(1)