redis官网:https://redis.io/
redis官方推荐的go客户端代码库:https://redis.io/clients#go
go第三方提供的类库:
1. go-redis: https://github.com/go-redis/redis
文档: https://gopkg.in/redis.v6
https://godoc.org/github.com/go-redis/redis#pkg-examples
推荐这个:https://github.com/go-redis/redis
https://github.com/gomodule/redigo
1. 下载依赖: go get -u github.com/go-redis/redis
//实例化redis客户端 myRedisClient := NewmyRedisClient();
//或者 var myRedisClient *redis.Client;myRedisClient = NewmyRedisClient();
func NewmyRedisClient() *redis.Client {
//返回 redis.Client结构体指针类型对象
myRedisClient := redis.NewClient(&redis.Options{
Addr: "localhost:6379", //redis地址和端口,格式: host:port
Password: "", //redis 密码,没有传空
DB: 0, //redis db号
})
//返回string, error
pong, err := myRedisClient.Ping().Result()
fmt.Println(pong, err) //PONG <nil>
return myRedisClient
}
package main
import "fmt"
import "github.com/go-redis/redis"
//var myRedisClient *redis.Client
func main() {
myRedisClient := NewmyRedisClient();
//设置缓存,返回 redis.StatusCmd结构体指针类型对象
err := myRedisClient.Set("userinfo:123", "userid=123,usernmae=admin", 0).Err()
if err != nil {//发生错误
panic(err)
}
//获取redis内容,返回 redis.StatusCmd结构体指针类型对象
getObj :=myRedisClient.Get("userinfo:123")
fmt.Println("redis命令名:", getObj.Name()) //redis命令名: get
if(getObj.Err() != nil) {//判断是否发生错误
fmt.Println("获取redis发生错误" )
} else {
fmt.Println("redis命令名和值:", getObj.String()) //redis命令名和值: get userinfo:123: userid=123,usernmae=admin
fmt.Println("1.获取到的值:", getObj.Val()) //1.获取到的值: userid=123,usernmae=admin
val, err := getObj.Result() //返回值和错误对象
if err != nil {
panic(err)
} else {
fmt.Println("2.获取到的值:", val) //2.获取到的值: userid=123,usernmae=admin
}
}
//对key值加1
result, err := myRedisClient.Incr("mycounter:pv").Result()
if err != nil {
panic(err)
} else {
fmt.Println("加1之后的结果:",result) //加1之后的结果: 2
}
//调用redis命令规律:连接对象.redis命令名(参数列表).结果方法(), 如: result, err := myRedisClient.Incr("mycounter:pv").Result()
}
//实例化redis客户端 myRedisClient := NewmyRedisClient();
func NewmyRedisClient() *redis.Client {
//返回 redis.Client结构体指针类型对象
myRedisClient := redis.NewClient(&redis.Options{
Addr: "localhost:6379", //redis地址和端口,格式: host:port
Password: "", //redis 密码,没有传空
DB: 0, //redis db号
})
//返回string, error
pong, err := myRedisClient.Ping().Result()
fmt.Println(pong, err) //PONG <nil>
return myRedisClient
}