直接看代码
package main import ( "errors" "fmt" "github.com/go-redis/redis" "time" ) //先下载三方依赖包,以下两个都可以,这里使用的是第一个 //go get -u github.com/go-redis/redis //go get -u github.com/garyburd/redigo/redis func ConnRedis() { rd := redis.NewClient(&redis.Options{ Addr: "10.x.x.x:9736", //单机连接 Password: "", //密码 DB: 0, //数据库 }) //集群模式连接,相当于命令行的 -c 参数,有域名的话直接填域名 /*rd := redis.NewClusterClient(&redis.ClusterOptions{ Addrs: []string{"10.x.x.x:9736", "10.x.x.x:9736"}, })/**/ //哨兵模式连接 /*rd := redis.NewFailoverClient(&redis.FailoverOptions{ MasterName: "name", SentinelAddrs: []string{"10.x.x.x:9736","10.x.x.x:9736"}, })/**/ defer rd.Close() //记得关闭连接 result, err := rd.Ping().Result() if err != nil { fmt.Println("ping err:", err) return } fmt.Println(result) //新建一个key-value,第三个参数为过期时间(0为不过期) err = rd.Set("k1", "v1", 3*time.Second).Err() if err != nil { fmt.Println("set err:", err) return } //获取key-value val, err := rd.Get("k1").Result() if err != nil { //如果返回的错误是key不存在 if errors.Is(err, redis.Nil) { //go-redis 库提供了一个 redis.Nil 错误来表示 Key 不存在的错误,以此区别处理 redis.Nil 和其他不为 nil 的错误 fmt.Println("key error:", nil) return } //其他错误 fmt.Println(err) return } else { //打印value fmt.Println("k1 == ", val) } //程序等待5秒钟 time.Sleep(5 * time.Second) v2, err := rd.Get("k1").Result() if err != nil { //如果返回的错误是key不存在 if errors.Is(err, redis.Nil) { fmt.Println("key error:", nil) return } //其他错误 fmt.Println(err) return } else { fmt.Println("k1 == ", v2) } } func main() { ConnRedis() }
标签:nil,err,--,fmt,redis,rd,Println,Go From: https://www.cnblogs.com/Xinenhui/p/17346897.html