为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang中做Redis(redigo)lpop

如何在golang中做Redis(redigo)lpop

Go
米脂 2023-04-04 14:24:36
我需要从 redis 队列中执行一个简单的 lpop。在 go lang 中,如果我使用 blpop 使用阻塞弹出,则 foll 代码有效reply, err := redis.Strings(conn.Do("BLPOP", key, 1))        if err == nil {                    fmt.Println(reply[1])        // do something with string reply[1]       }但我不想阻止。我只需要在队列为空时结束。那么我该怎么做 如果我将redis.Strings(conn.Do("LPOP", key)) BLPOP 更改为 LPOP,我会收到 redigo 错误ERROR = redigo: unexpected type for Strings, got type []uint8 
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

我可以使用 redis.String() 获取 lpop 值


所以这有效


reply, err := redis.String(conn.Do("LPOP", key))

    if err == nil { 

     fmt.Printf("REPLY= %s\n", reply)

      //do something 


查看完整回答
反对 回复 2023-04-04
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

BLPOP命令返回一个双元素数组,其中第一个元素是键,第二个值是弹出的元素。

LPOP命令返回弹出的元素。

使用 String 辅助函数获取弹出的元素:

reply, err := redis.String(conn.Do("LPOP", key))

        if err == nil {         

           fmt.Println(reply)

        // do something with string reply

       }


查看完整回答
反对 回复 2023-04-04
  • 2 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信