1.5通过go语言和redis数据库进行交互
安装命令
go get github.com/gomodule/redigo/redis
安装完成后,回到家目录创建test.go,把下面代码复制到test.go里面,编译执行test.go,之后在redis中查找到键c1值为hello,说明安装成功
package main
import ( "github.com/gomodule/redigo/redis")
func main(){
conn,_ := redis.Dial("tcp", ":6379")
defer conn.Close()
conn.Do("set", "c1", "hello")
}
https://godoc.org/github.com/gomodule/redigo/redis
Dial(network, address string)(conn,err)
执行数据库操作命令
Send(commandName string, args ...interface{}) error
Flush() error
Receive() (reply interface{}, err error)
Send函数发出指令,flush将连接的输出缓冲区刷新到服务器,Receive接收服务器返回的数据
例如:
c.Send("SET", "foo", "bar")
c.Send("GET", "foo")
c.Flush()/c.Receive()v, err = c.Receive()
Do(commandName string, args ...interface{}) (reply interface{}, err error)
reply helper functionsBool,Int,Bytes,map,String,StringsValues
exists, err := redis.Bool(c.Do("EXISTS", "foo"))
if err != nil {
//处理错误代码
}
reflect.TypeOf(exists)
func Scan(src [] interface {},dest ... interface {})([] interface {},error)
Scan函数从src复制到dest指向的值。
Dest参数的值必须是整数,浮点数,布尔值,字符串,[]byte,interface{}或这些类型的切片。Scan使用标准的strconv包将批量字符串转换为数字和布尔类型。
示例代码
var value1 int
var value2 string
reply, err := redis.Values(c.Do("MGET", "key1", "key2"))
if err != nil {
//处理错误代码
}
if _, err := redis.Scan(reply, &value1, &value2); err != nil {
// 处理错误代码
}
var buffer bytes.Bufferenc :=gob.NewEncoder(&buffer)err:=enc.Encode(dest)dec := gob.NewDecoder(bytes.NewReader(buffer byte[]))dec.Decode(&src)
欢迎加微信一起学习:13671593005
如有错误,敬请留言指点,我立马改正,以免误导他人~谢谢!