获取redis golang的队列长度

时间:2018-01-22 08:35:10

标签: go redis

我正在使用go-redis包。我解雇了以下问题:

rd.LLen("queue_1")

使用*redis.IntCmd类型向我返回结果:

llen queue_1: 100001

计数是完美的,但我只想计算int的类型。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

LLen func类似于:func (c *cmdable) LLen(key string) *IntCmd

因此它返回IntCmd类型。 IntCmd提供此功能:func (cmd *IntCmd) Val() int64

所以你可以这样做。

cmd := rd.LLen("queue_1")
i := cmd.Val() //i will be an int64 type

答案 1 :(得分:2)

documentation for IntCmd显示以下内容:

func (cmd *IntCmd) Result() (int64, error)

func (cmd *IntCmd) Val() int64

所以看起来你可以得到int64值和要检查的任何错误,或者只是int64值。这还不够吗?

您可以按以下方式拨打电话:

// Get the value and check the error.
if val, err := res.Result(); err != nil {
  panic(err)
} else {
  fmt.Println("Queue length: ", val)
}

// Get the value, but ignore errors (probably a bad idea).
fmt.Println("Queue length: ", res.Val())

答案 2 :(得分:1)

使用ResultVal方法。如文档所述,这些返回从命令返回的int64值。