Redis连接池频繁耗尽发生在何处(redis连接池经常耗尽)
Redis连接池频繁耗尽是指Redis连接池中的可用连接数量降低到一定程度时,应用程序再次获取Redis连接失败会发出耗尽警报,也可以称其为连接池耗尽,是指连接池没有可用的连接,系统无法再拿取连接。
redis连接池抽象方法
一般情况下,目的是允许多个不同的应用或者线程能够可以共享和重用某一个Redis连接,这个Redis连接一般是连接构成的池。
Redis连接池频繁耗尽,发生在当应用程序所申请的资源大于Redis连接池指定的最大连接数时,Redis连接池耗尽,无法为应用程序提供服务就发生了。
当Redis连接池频繁耗尽,应该关注如下几方面:
1、Redis连接池容量设置:
首先应该检查Redis连接池容量是否设置合理,Redis连接池的容量总是受机器的内存因素限制,因此应该设置尽可能合理的连接数。可以使用如下代码可以设置Redis连接池的最大连接数:
GenericObjectPoolConfig config = new GenericObjectPoolConfig();
config.setMaxTotal(20);//最大连接数
2、应用连接池句柄释放问题:
假设Redis连接池容量已经合理设置,可能是应用程序在使用连接池获取连接后,没有正确try-finally释放资源,一旦大量连接永久被占用,Redis连接池容量开始耗尽,系统会发出耗尽警报,方式有:
finally {
if(conn !=null ) cpp.returnObject(conn);}
3、Redis本身连接耗尽报警:
另外还可以增加Redis配置文件中的maxclient配置,当达到最大连接数时,Redis发出连接池耗尽告警。
maxclients 10000
Redis连接池频繁耗尽一般需要从容量设置,应用连接池句柄释放,Redis本身连接耗尽等方面去综合考虑,及时发现问题并采取正确的措施,才能提供良好的Redis连接池服务。
相关文章