您的位置:首页 > 数据库 > Redis

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

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



由于这个项目中用到了Twemproxy,下面写着Twemproxy not support INFO command,这导致了每次连接Client都会去试图获取INFO信息,获取不到,就把连接的状态标志为HadExceptions = true,等到新的连接请求过来时,就会因为HadExceptions = true,而去关闭老的连接,再启一个新连接,这时连接池就一点用都没了,知道这个原因后,接下来怎么改就按大家自己的想法了,我的做法是简单粗暴的在获取版本号的地方给一个版本号,不再去发起INFO 请求,解决了这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: