目錄git
go get github.com/gomodule/redigo/redis
package conn import ( "github.com/gomodule/redigo/redis" "log" ) const ( redis_passwd = "" redis_host = "" redis_port = "" redis_address = "192.168.2.130:6379" ) func getConn() redis.Conn { conn, err := redis.Dial("tcp", redis_address) if err != nil { log.Println("redis connect err", err) panic(err) } return conn }
package conn import ( "fmt" "github.com/gomodule/redigo/redis" "log" ) var c = getConn() //string 操做 func Set(key string, value interface{}) bool { defer c.Close() _, err := c.Do("set", key, value) if err != nil { log.Println("set a value error,", err) return false } return true } func Get(key string) string { defer c.Close() value, err := redis.String(c.Do("get", key)) if err != nil { log.Println("get a value error,", err) return "" } return value } func Del(key string) bool { defer c.Close() _, err := c.Do("del", key) if err != nil { log.Println("del a key error, ", err) return false } return true } //Hash操做 func HashSet(key string, data map[string]interface{}) { defer c.Close() for k, v := range data { _, err := c.Do("hset", key, k, v) if err != nil { log.Println("hset a error, ", err) continue } } } func HashMGet(key string) map[string]interface{} { defer c.Close() data := make(map[string]interface{}) reply, err := redis.ByteSlices(c.Do("hgetall", key)) if err != nil { log.Println("hmget error, ", err) return nil } for i, v := range reply { fmt.Println(string(v)) if i % 2 == 0 { data[string(v)] = string(reply[i+1]) } continue } return data }
package pool import ( "github.com/gomodule/redigo/redis" "time" ) var ( pool *redis.Pool ) const ( redis_host = "192.168.2.130:6379" ) func init() { pool = &redis.Pool{ MaxIdle: 10, MaxActive: 0, //0表示沒有限制 IdleTimeout: 1 * time.Second, Dial: func() (redis.Conn, error) { return redis.Dial("tcp", redis_host) }, } }
獲取鏈接:conn := pool.Get()
github