redigo长连接/复用

Connecting to Redigo and manipulating data inside a function is easy like butter, but the problem comes when you have to re-use its connection, obviously for performance/practicality reasons.

 How do you go about re-using (not recreating everytime) a Redigo connection?


最佳答案:



The best way turned out to be using Pools, which are briefly documented here: Redigo Pools.

A global variable won't eventually reuse a connection, so I ended up with something like this (using Pools as noted before):

func newPool() *redis.Pool {
return &redis.Pool{
            MaxIdle: 80,
            MaxActive: 12000, // max number of connections
            Dial: func() (redis.Conn, error) {
                    c, err := redis.Dial("tcp", ":6379")
                    if err != nil {
                            panic(err.Error())
                    }
                    return c, err
            },
    } 

}

var pool = newPool()

func main() {

        c := pool.Get()
        defer c.Close()

        test,_:=c.Do("HGETALL", "test:1")
        fmt.Println(test)
}

If for example you want to reuse a pool inside another function you do it like this:

func test() {
        c := pool.Get()
        defer c.Close()

        test2,_:=c.Do("HGETALL", "test:2")
        fmt.Println(test2)
}


###########

https://github.com/garyburd/redigo/blob/ee4f539b48a64737dd7a991cdebf1cb367ddb7fb/redis/pool_test.go



############

https://github.com/garyburd/redigo/issues/104


https://github.com/garyburd/redigo/issues/114


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在GNU Radio中,码元串是一串数字,可以表示数字信号的离散样本。而并转换则是将多个码元串合并成一个更长的码元串。 下面是一个简单的例子来说明如何在GNU Radio中进行码元串/并转换: 1. 首先,我们需要创建一个简单的流程图来生成一个码元串。在GNU Radio Companion中,拖动一个随机源(Random Source)块到画布中,并将它连接到一个数字控制输出(Control Port)块。在随机源的属性中,将输出类型设置为整数(Integer),并将最大输出值设置为1。 2. 接下来,我们需要使用一个码元串转换器(Symbol Sync)块来将连续的整数样本转换为离散的码元串。将随机源的输出连接到码元串转换器的输入端口。 3. 现在,我们需要创建一个简单的流程图来将两个码元串连接在一起。在GNU Radio Companion中,拖动一个数字控制输出(Control Port)块和一个码元串转换器(Symbol Sync)块到画布中。将第一个码元串转换器的输出连接到数字控制输出块的一个输入端口,将第二个码元串转换器的输出连接到数字控制输出块的另一个输入端口。 4. 在数字控制输出块的属性中,将输出类型设置为整数(Integer),并将输出值设置为1和0的交替序列,例如[1,0,1,0,1,0]。 5. 最后,我们需要使用一个码元串转换器(Symbol Sync)块来将连续的整数样本转换为离散的码元串。将数字控制输出块的输出连接到码元串转换器的输入端口。 这样,我们就可以将两个码元串连接在一起,生成一个更长的码元串。 请注意,这只是一个简单的例子,您可以根据您的需求自由地使用不同的块和参数来生成和处理码元串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值