(1)安装第三方开源的redis库;
(2)在使用redis之前,需要安装第三方库,在GOPATH路径下执行安装指令--$GOPATH$:go get github.com/garyburd/redigo/redis;
注意:在安装redis之前,需要确保已经安装和配置了Git,因为是从github上面下载安装redis库的,需要使用到Git。
go操作redis中的string:
package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func main() { //连接到redis conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("连接错误,err=", err) return } defer conn.Close() //向redis写入数据 _, err1 := conn.Do("Set", "name", "gong") if err1 != nil { fmt.Println("set err=", err1) return } //向redis读取数据,返回的r是个空接口 r, err2 := redis.String(conn.Do("Get", "name")) if err2 != nil { fmt.Println("get err=", err2) } fmt.Println("操作set") fmt.Println("操作get r=", r) }
go操作redis中的Hash:
package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func main() { //连接到redis conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("连接错误,err=", err) return } defer conn.Close() //向redis写入数据 _, err1 := conn.Do("HSet", "user1", "name", "gong") if err1 != nil { fmt.Println("HSet err=", err1) return } _, err3 := conn.Do("HSet", "user1", "age", "20") if err3 != nil { fmt.Println("HSet err=", err3) return } //向redis读取数据,返回的r是个空接口 r, err2 := redis.String(conn.Do("HGet", "user1", "name")) if err2 != nil { fmt.Println("HGet err=", err2) } fmt.Println("操作HSet") fmt.Println("操作HGet r=", r) }
假设想操作多个hash,则
package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func main() { //连接到redis conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("连接错误,err=", err) return } defer conn.Close() //向redis写入数据 _, err1 := conn.Do("HMSet", "user1", "name", "beijing", "address", "beijing") if err1 != nil { fmt.Println("HMSet err=", err1) return } _, err3 := conn.Do("HMSet", "user2", "name", "wuhan", "address", "wuhan") if err3 != nil { fmt.Println("HMSet err=", err3) return } //向redis读取数据,返回的r是个空接口 r, err2 := redis.Strings(conn.Do("HMGet", "user1", "name", "address")) if err2 != nil { fmt.Println("HMGet err=", err2) return } for i, v := range r { fmt.Printf("r[%d]=%v ", i, v) } }
给数据设置有效时间:
redis.Do("eexpire","name",10)
其它的数据结构基本差不多,就是里面传入的方法的区别。