go - 如何在golang中做Redis(redigo)lpop

标签 go redis

我需要从 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 

最佳答案

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

这样就可以了

reply, err := redis.String(conn.Do("LPOP", key))
    if err == nil { 
     fmt.Printf("REPLY= %s\n", reply)
      //do something 

关于go - 如何在golang中做Redis(redigo)lpop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52279988/

相关文章:

redis - 在 Slave redis db 上写入

go - 使用 Go 获取目录中的文件数

go - 使用文件 i/o 运行 go 可执行文件

sorting - Redis:将多个 HSET 排序集分组并汇总为一个排序集

azure - Azure 中的 Redis 缓存被意外清除

c# - 搜索用户并按 Redis 中最多的共同 friend 数量排序?

go - 如何在 Golang 中查看导入的包

json - Golang json 根据键值对解码

go - 如何在Go中获取结构体中字段的真正指针?

replication - 可扩展性设计问题 - 主/从数据库