从 redis 中获取所有密钥
Get All keys From redis in go
如何使用redigo获取redis在db中的所有key并存储在golang中的列表或数组中?
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)
使用Strings函数将结果转换为一段字符串:
keys, err := redis.Strings(cn.Do("KEYS", "*"))
if err != nil {
// handle error
}
for _, key := range keys {
fmt.Println(key)
}
由于 Redis 只有一个线程,KEYS
命令将阻塞所有其他请求,直到它完成,因此这不是生产环境的好方法。相反,请使用 SCAN
。 see SCAN documentation here
如何使用redigo获取redis在db中的所有key并存储在golang中的列表或数组中?
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)
使用Strings函数将结果转换为一段字符串:
keys, err := redis.Strings(cn.Do("KEYS", "*"))
if err != nil {
// handle error
}
for _, key := range keys {
fmt.Println(key)
}
由于 Redis 只有一个线程,KEYS
命令将阻塞所有其他请求,直到它完成,因此这不是生产环境的好方法。相反,请使用 SCAN
。 see SCAN documentation here