码迷,mamicode.com
首页 > 其他好文 > 详细

ServiceStack.Redis连接池不起作用的问题处理

时间:2015-02-15 16:38:47      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:servicestack   pooledredisclientman   redis   连接池   

在新的项目中用到了Redis做ORM的二级缓存,一开始是每次New一个新的Client去连接服务器,发现没过多久,服务器的连接池就爆掉了,于是用PooledRedisClientManager来做客户端连接池的管理,但是发现,无论怎么设置链接池的数量,客户端发起的连接数根本不受控制,还是一次一个新连接,很是郁闷,上Stackoverflow上搜了很久,没有一个办法能解决问题的,无奈之下只能连ServiceStack.Redis的源码进行调试,百般努力下终于发现端倪,罪魁祸首是下面这段代码:

技术分享

由于这个项目中用到了Twemproxy,下面写着Twemproxy not support INFO command,这导致了每次连接Client都会去试图获取INFO信息,获取不到,就把连接的状态标志为HadExceptions = true,等到新的连接请求过来时,就会因为HadExceptions = true,而去关闭老的连接,再启一个新连接,这时连接池就一点用都没了,知道这个原因后,接下来怎么改就按大家自己的想法了,我的做法是简单粗暴的在获取版本号的地方给一个版本号,不再去发起INFO 请求,解决了这个问题。

ServiceStack.Redis连接池不起作用的问题处理

标签:servicestack   pooledredisclientman   redis   连接池   

原文地址:http://blog.csdn.net/maje/article/details/43835495

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!