linux - redis连接池应用在一万并发下时连接数只有2?
问题描述

如图所示,我用golang的redigo库写了一个redis连接池,用ab测试模拟一万并发读操作,但是redis无论怎么刷新info,连接数一直是2,最多也只显示了4,但是使用写操作有六十多的连接数,同时netstat-ano显示确实有大量TIME_WAIT状态的TCP连接发生在远程127.0.0.1:6379上,请问这是什么原因?(redis配置里面最大连接数为10000)
(请无视右边的netstat窗口,那只是我截图的时候没截好,其实我自己find过滤了一下确实有大量TIME_WAIT状态的TCP连接发生在远程127.0.0.1:6379上)
PS:另外还有一个问题就是ab测试程序的-c参数为什么最大只能一万啊,我输入十万直接显示了帮助文档。。。
问题解答
回答1:嫌连接池没被占用?
这样写
package mainimport 'github.com/garyburd/redigo/redis'import ( 'flag' 'fmt' 'time')func newPool(addr string) *redis.Pool { return &redis.Pool{MaxIdle: 30,IdleTimeout: 240 * time.Second,Dial:func() (redis.Conn, error) { return redis.Dial('tcp', addr) }, }}var ( pool*redis.Pool redisServer = flag.String('redisServer', ':6379', ''))func main() { flag.Parse() pool = newPool(*redisServer) fmt.Println(pool) conn := pool.Get() conn2 := pool.Get() conn3 := pool.Get() conn4 := pool.Get() conn.Do('get', 'a') conn2.Do('get', 'a') conn3.Do('get', 'a') conn4.Do('get', 'a') //这里使劲加connX,就能看到效果了 //defer conn.Close() //defer conn2.Close() //defer conn3.Close() //defer conn4.Close() time.Sleep(100 * time.Second)}
相关文章:
1. 关docker hub上有些镜像的tag被标记““This image has vulnerabilities””2. javascript - 奇怪的Symbol的问题3. position:absolute、float、display:inline-block 都能实现相同效果,区别是什么?4. css - 移动端 盒子内加overflow-y:scroll后 字体会变大5. angular.js - angular post的Content-Type被设置,导致不能上传图片,求助!!6. javascript - 在vue-cli引入vux后 使用报错7. android - 如何缩小APK的体积8. javascript - JS new Date() 保存到 mongodb 中会早8个小时,我们这里是东八区,mongodb 保存的是格林尼治时间9. angular.js - protractor初学 参考案例运行测试文件 报Error: Timeout10. html - iframe嵌套网页在iPhone端的显示问题

网公网安备