目錄
- 一、go操作redis的選擇
- 二、redigo快速使用
- 1. 快速連結
- 三、redis操作
- 四、連線池
一、go操作redis的選擇
-
golang操作redis主要有兩個庫,go-redis和redigo。
-
go-redis:star數更多,支援連線哨兵及叢集模式的Redis
-
redigo:star數少一些,操作更簡單
二、redigo快速使用
安裝:go get github.com/garyburd/redigo/redis
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)
}