Get All keys From redis in go
14,761
Solution 1
Use the Strings function to convert the result to a slice of strings:
keys, err := redis.Strings(cn.Do("KEYS", "*"))
if err != nil {
// handle error
}
for _, key := range keys {
fmt.Println(key)
}
Solution 2
Since Redis only has one thread, the KEYS
command will block all other requests until it has finished, so it's not a good approach for production. Instead, use SCAN
. see SCAN documentation here
Author by
Vinay Sawant
Updated on July 02, 2022Comments
-
Vinay Sawant almost 2 years
How to get all keys of Redis in db and store it in list or array in golang using redigo?
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)