4-操作Redis之redigo
阿新 • • 發佈:2022-03-19
一 go操作redis的選擇
golang操作redis主要有兩個庫,go-redis和redigo。
go-redis:star數更多,支援連線哨兵及叢集模式的Redis
redigo:star數少一些,操作更簡單
二 redigo快速使用
安裝:go get github.com/garyburd/redigo/redis
2.1 快速連結
func main() { conn,err:=redis.Dial("tcp", "localhost:6379") if err!=nil { fmt.Println("連接出錯",err) return } defer conn.Close() res,err:=conn.Do("ping") fmt.Println(res) }
三 redis操作
func main() { conn,err:=redis.Dial("tcp", "localhost:6379") if err!=nil { fmt.Println("連接出錯",err) return } defer conn.Close() res,err:=conn.Do("ping") fmt.Println(res) // 1 字串 set get //res,_=conn.Do("set","name","lqz") //fmt.Println(res) //res,_=redis.String(conn.Do("get","name")) //fmt.Println(res) //2 MSet MGet //conn.Do("MSet", "name", "劉清政", "age", 19) //r, _ := redis.Strings(conn.Do("MGet", "name", "age")) //fmt.Println(r) // 3 expire //res,err=conn.Do("expire", "name", 5) //4 lpush lpop conn.Do("lpush", "hobby", "籃球", "足球", "乒乓球") r, _ := redis.String(conn.Do("lpop", "hobby")) fmt.Println(r) // 5 hset hget conn.Do("HSet", "userinfo", "name", "lqz") r,_ = redis.String(conn.Do("HGet", "userinfo", "name")) fmt.Println(r) }
四 連線池
func main() { var pool *redis.Pool pool = &redis.Pool{ MaxIdle: 10, //最初的連線數量 MaxActive: 0, //連線池最大連線數量,(0表示自動定義),按需分配 IdleTimeout: 300, //連線關閉時間 300秒 (300秒不使用自動關閉) Dial: func() (redis.Conn, error) { //要連線的redis資料庫 return redis.Dial("tcp", "localhost:6379") }, } conn := pool.Get() //從連線池,取一個連結 defer conn.Close() res, _ := conn.Do("ping") fmt.Println(res) }