golang操作redis
package main import ( "fmt" "redigo-master/redis" ) func main() { conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("redis.Dial err=", err) return } fmt.Println("conn suc...", conn) defer conn.Close() // 写数据 _, err = conn.Do("Set", "name", "allin1314") if err != nil { fmt.Println("redis.write err=", err) return } // 读数据 data, err := redis.String(conn.Do("Get", "name")) if err != nil { fmt.Println("redis.read err=", err) return } fmt.Println(data) }
Redis链接池
Golang操作redis,还可以通过Redis链接池:
1)事先初始化一定数量的链接,放入到链接池
2)当Go需要操作Redis时,直接从Redis链接池取出链接即可
3)这样可以节省临时获取Redis链接的时间,从而提高效率
4)示意图
代码:
package main import ( "fmt" "redigo-master/redis" ) var pool *redis.Pool func init() { pool = &redis.Pool{ MaxIdle: 8, MaxActive: 0, IdleTimeout: 100, Dial: func() (redis.Conn, error) { return redis.Dial("tcp", "localhost:6379") }, } } func main() { conn := pool.Get() defer conn.Close() // 写数据 _, err := conn.Do("Set", "name", "admin123") if err != nil { fmt.Println("redis.write err=", err) return } // 读数据 data, err := redis.String(conn.Do("Get", "name")) if err != nil { fmt.Println("redis.read err=", err) return } fmt.Println(data) }
人生就是要不断折腾