♟Go 语言那些事儿之 Redis 连接与数据操作♟
♟Go 语言那些事儿之 Redis 连接与数据操作♟
一、安装所需第三方包
在命令行模式下执行go get github.com/garyburd/redigo/redis
可将该包下载到 GOPATH 的路径下。
二、启动 redis-server 和 redis-cli
启动服务端要记得加上配置文件
启动客户端,如果有密码记得输入密码。
三、编写代码
先是导入了有关包。
然后写了一个处理错误的函数。os.Exit(1)
表示出错,程序会马上结束运行,并且 defer 的东西不会再执行。
redis.Dial()
这个函数是用来连接 redis 的,需要给定网络协议和 IP 地址及端口号,redis 的端口号默认为 6379.
defer conn.Close()
表示延时结束与 redis 的连接,为了节省系统的 io 资源,需要及时结束!新手很容易忘记这个,要养成习惯!
conn.Do()
是用来执行数据库命令的,第一个参数是命令名,后面的参数是数据库命令的参数。它返回的结果中 reply 是字节数组[]byte 类型,需要根据具体的业务类型进行数据类型转换。
四、一起来了解 Do()函数
将conn.Do()
替换为下列代码:
执行结果为:
发现没有正确打印结果,打印的是空字符串,也就是 reply 未成功输出。
然后我们更改数据类型转换的函数。
使用:
因为查询结果是Int
类型,所以我们之前转换成 String 是不能成功的。这里我们现在使用Int()
,就可以成功转换输出了。
我们来看看运行结果吧!
同理,是 Float 类型我们就需要使用Float()
,是什么类型就需要转换为什么类型,这样才能正确输出。
操作数据
set 操作
运行结果:
这后面就需要用
来将 byte[]类型的数据转换为字符串类型的数据,才能正确输出。
如上所示,如果有多个参数就用多个参数,就是把命令行里面的空格变成逗号,然后是字符串用双引号括起来,不是字符串就不用双引号。
上面代码执行结果:
说明执行成功了!
redis.String()和 redis.Strings()
如果执行这条语句,那么可以使用redis.Strings()
结果是这个:
如果使用redis.String()
,那么结果就是这个:
来观察一下他们有什么区别吧!
这是我们需要注意的地方,这里如果使用redis.String()
就会导致无输出结果。
Redis
支持管道化,你可以使用管道化技术
管道化操作有 Send(),Flush(),Receive()方法
Do 方法将 Send,Flush 和 Receive 方法组合在一起。
版权声明: 本文为 InfoQ 作者【Regan Yue】的原创文章。
原文链接:【http://xie.infoq.cn/article/cf17ba17b5f9ae0db6888ca35】。文章转载请联系作者。
评论