您的位置:首页 > 数据库 > Redis

Golang的Redis操作

2017-08-09 14:07 302 查看

背景

本篇博客主要讲解在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: