首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gomodule/redigo如何向redis推送多个键

gomodule/redigo如何向redis推送多个键
EN

Stack Overflow用户
提问于 2018-08-12 00:40:12
回答 2查看 1.9K关注 0票数 2

我正在尝试将多个元素推送到一个redis键。当前使用的是使用https://github.com/gomodule/redigo的redis池连接。

如果我尝试将一个数组放入rpush,则会推送一个连接了该数组的字符串。我如何才能推送单个元素

代码语言:javascript
复制
conn := Pool.Get() // A redigo redis pool 
arr := []string{"a", "b", "c", "d"}
conn.Do("RPUSH","TEST","x","y") // This works
conn.Do("RPUSH", "TEST", arr) //This does not work
EN

回答 2

Stack Overflow用户

发布于 2018-08-12 01:01:03

我没有这个库,但根据我在他们的文档中看到的,我想这应该是可行的:

代码语言:javascript
复制
conn.Do("RPUSH", arr...)

...是一个参数运算符,它将切片的元素解包,并将它们作为单独的参数传递给一个可变函数,该函数与以下内容相同:

代码语言:javascript
复制
arr := []string{"TEST", "a", "b", "c", "d"}

conn.Do("RPUSH", "TEST", arr[0], arr[1], arr[2], arr[3])

有关可变函数的更多信息,请参阅go in this very complete article

票数 2
EN

Stack Overflow用户

发布于 2018-08-12 08:37:18

构建一段参数,并使用这些参数调用变量函数:

代码语言:javascript
复制
 args := []interface{"TEST")
 for _, v := range arr {
   args = append(args, v)
 }
 conn.Do("RPUSH", args...)

Args帮助器用一行应用程序代码做同样的事情:

代码语言:javascript
复制
 conn.Do("RPUSH", edis.Args{}.Add("TEST").AddFlat(arr)...)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51801744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档