Golang的Redis操作

背景

本篇博客主要讲解在kubernetes集群中,如何使用go语言对Redis与Mysql进行操作。
在此之前要有此基础:
1. 安装并会使用go语言
2. 配置好了kubernetes
3. 在kubernetes中配置好了redis服务

连接

使用go连接Redis需要github.com/garyburd/redigo/redis这个包。这里的redigo是一个go语言的redis客户端实现。redigo没有其它别的依赖项,我们可以直接通过go get来安装它。
go get github.com/garyburd/redigo/redis
但是在安装时我们有可能会碰到如下bug:
这里写图片描述
这是因为我们没有配置GOPATH环境变量的原因。需要按如下命令配置:
这里写图片描述
当然,在命令行中设置环境变量并不是永久生效的。要永久生效,你可以在配置文件中去配置。
安装完成我们就可以进行连接了。
Redis中提供的有现成的方法
c,err := redis.Dial("tcp","192.168.3.3:6379")
Dial方法第一个参数是网络连接的方式,第二个参数是redis服务的入口地址。我们可以使用Node IP+端口的方式,也可以用service IP+端口的方式。我这里演示的是用service IP+端口的方法访问。这适用于在kubernetes集群内部进行访问,若是从外部访问就需要用node IP+端口的方式了。
这里写图片描述
这里我们可以看到redis-master这个service对象的IP是192.168.3.3,端口号为6379。

命令操作

Conn接口是与Redis协作的主要接口,我们刚才已经用Dial方法建立了连接了。现在我们就可以使用Conn借口来对Redis进行操作。
这里举一个简单的例子:

  1 package main
  2 
  3 import (
  4         "fmt"
  5         "github.com/garyburd/redigo/redis"
  6 )
  7 
  8 func main() {
  9         c, _ := redis.Dial("tcp", "192.168.3.3:6379")
 10         _ ,err := c.Do("SET","username","pingfan")
 11         if err != nil{
 12         fmt.Printf("ERROR",err)
 13         }
 14         username, _ := redis.String(c.Do("GET", "username"))
 15         fmt.Println("Got username ",username)
 16  }

9行之前已经讲过了
我们操作Redis,就是用Conn接口的Do方法,Do是一个通用方法,它能做许多事。
比如10与14行,分别表示写与读。
我这里用service IP访问redis-master服务。代码运行结果如下:
这里写图片描述
其它还有许多操作:
批量写入读取

MGET key [key ...]
MSET key value [key value ...]

批量写入读取对象(Hashtable)

HMSET key field value [field value ...]
HMGET key field [field ...]

检测值是否存在

EXISTS key

删除

DEL key [key ...]

设置过期时间

EXPIRE key seconds

猜你喜欢

转载自blog.csdn.net/hty46565/article/details/76962952