登录
首页 >  Golang >  Go问答

在Golang中如何使用Redigo执行LPOP操作

来源:stackoverflow

时间:2024-03-04 11:00:27 433浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《在Golang中如何使用Redigo执行LPOP操作》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我需要从 redis 队列中执行一个简单的 lpop。 在 go lang 中,如果我使用 blpop 使用阻塞 pop,那么下面的代码就可以工作

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

解决方案


我可以使用 redis.string() 获取 lpop'ed 值

所以这有效

reply, err := redis.string(conn.do("lpop", key))
    if err == nil { 
     fmt.printf("reply= %s\n", reply)
      //do something

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

LPOP 命令返回弹出的元素。

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

reply, err := redis.String(conn.Do("LPOP", key))
        if err == nil {         
           fmt.Println(reply)
        // do something with string reply
       }

好了,本文到此结束,带大家了解了《在Golang中如何使用Redigo执行LPOP操作》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>