V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
mrsongopen1
V2EX  ›  Go 编程语言

redigo 中尝试使用连接池, shell 循环跑 1000 为啥 redis 的连接数还是 1?

  •  1
     
  •   mrsongopen1 · 2020-04-07 17:17:26 +08:00 · 2362 次点击
    这是一个创建于 1689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,小 demo 已 build,用 shell 循环 1000 次 exe,本地 info clients 一直是 1,用 redigo 封装的 Stats 测试一直都是「 1 0 」,按说连接池应该有大于 1 的链接被用啊,到底是为什么?配置:maxIdle 5 maxActive 10,idleTimeout 5sec 。本人 php,尝试用 go 跑个微服务,愧于学术浅

    6 条回复    2020-04-08 04:08:16 +08:00
    imherer
        1
    imherer  
       2020-04-07 17:49:30 +08:00
    我猜你程序里根本一个连接都没用到
    info clients 里的 1 估计还是你 shell 用的那个 client

    试试在程序里在用到 redis 的地方,一直让它处于 wait 状态,不要释放,这样你 client 数量应该就上去了
    D3EP
        2
    D3EP  
       2020-04-07 18:05:45 +08:00
    串行执行的吧。
    Citrus
        3
    Citrus  
       2020-04-07 18:34:37 +08:00   ❤️ 2
    你的 shell 循环是不是类似这样的?

    #!/bin/bash

    for((i=1;i<=1000;i++));
    do
    ./redigo_demo
    done
    ScepterZ
        4
    ScepterZ  
       2020-04-07 18:43:24 +08:00
    @Citrus 虽然不知道是不是,但是我成功被你逗笑了
    useben
        5
    useben  
       2020-04-07 21:46:26 +08:00
    @Citrus 目测是这样了...
    xcstream
        6
    xcstream  
       2020-04-08 04:08:16 +08:00
    在 1 和 0 之间跳动 大部分时间是 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1103 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.