首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在go中从redis获取所有密钥

在go中从redis获取所有密钥
EN

Stack Overflow用户
提问于 2015-07-17 18:24:46
回答 2查看 14K关注 0票数 6

如何在db中获取Redis的所有密钥,并使用redigo将其存储在golang中的列表或数组中?

代码语言:javascript
复制
redisPool := redis.NewPool(func() (redis.Conn, error) {
    con, err := redis.Dial("tcp", *redisAddress)
    con.Do("SELECT", 0)
    if err != nil {
        return nil, err
    }
    return con, err
}, *maxConnections)
fmt.Println("Redis Connection Established...!")
con := redisPool.Get()

//defer con.Close()
fmt.Println("Redis Connected...!")
//var sl []string = make([]string, len, cap)
var ab interface{}
ab, errA := con.Do("Keys", "*")
fmt.Println(ab)
fmt.Println(errA)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-17 20:23:13

使用Strings函数将结果转换为一段字符串:

代码语言:javascript
复制
keys, err := redis.Strings(cn.Do("KEYS", "*"))
if err != nil {
    // handle error
}
for _, key := range keys {
   fmt.Println(key)
}
票数 15
EN

Stack Overflow用户

发布于 2019-04-22 23:02:15

因为Redis只有一个线程,所以KEYS命令将阻塞所有其他请求,直到它完成,所以这不是一个好的生产方法。相反,请使用SCANsee SCAN documentation here

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31473676

复制
相关文章

相似问题

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