Golang redigo使用笔记(一):基本用法

马谦马谦马谦
马谦马谦马谦
马谦马谦马谦
606
文章
12
评论
2017年11月28日21:06:24 评论

一、概述

redigo是一个redisgo client,官方描述为:Redigo is a Go client for the Redis database.

基本特点:

  • 简单的API调用,并支持所有的redis命令。
  • 支持管道、事务、订阅以及连接池。

项目首页:https://github.com/garyburd/redigo/

官方文档:https://godoc.org/github.com/garyburd/redigo/redis

安装:go get github.com/garyburd/redigo/redis

二、基本使用方法

2.1 连接和关闭

使用Dail方法来连接服务:

network表示网络类型,address是服务地址,options是一些可选的选项,如果连接成功将返回一个redis.Conn对象,在连接使用完毕后,使用Close()关闭。

2.2 执行命令

执行redis命令使用Do()方法:

commandName是redis命令,后面接参数,例如执行一个SET命令:

要注意的是不能使用类似Do("SET", "xxx hello")的命令,因为系统会把这个命令解析成set一个名为xxx hello的键,它的值为空。

运行后将返回一个reply对象和错误标志err,如果err != nilreply中保存redis服务的响应。reply是一个接口对象,根据命令的不同返回的形式也不同,它将会根据值的类型做如下转换:

在获取到返回值后可以使用断言来转换数据类型,或者使用库中自带的Reply Helpers进行转换。

2.3 Reply Helpers

Reply Helpers是库里提供的类型转换功能,可以把replayinterface{}转换成我们想要的类型,包里提供了很多类型转换函数,如:

可以把Do函数返回的数据类型转换成[]string类型,相同的函数还有Float64Int64等等。

2.4 管道

管道的使用方法设计到三个函数:

send()方法把命令写到输出缓冲区,Flush()把缓冲区的命令刷新到redis服务器,Receive()函数接收redis给予的响应,三个操作共同完成一套命令流程:

合并这三个操作就成了Do()函数,官方对Do()的描述为:

三、操作示例

 

 

马谦马谦马谦
  • 本文由 发表于 2017年11月28日21:06:24
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/golang/golang-redigo-1.html
redis源码分析:链表实现 Redis

redis源码分析:链表实现

一、链表定义 链表在redis中的使用十分广泛,例如列表的底层实现之一就是链表,包括发布、订阅等等功能都是有用到链表的。redis中链表在adlist.h和adlist.c中实现,只用了300+行代码...
国内几个优质的Go Module代理仓库服务 Golang

国内几个优质的Go Module代理仓库服务

一、简介 go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get无法在线获取到仓库,...
redis中的发布和订阅 Redis

redis中的发布和订阅

一、发布和订阅 除了任务队列以外,redis还有一种基于“发布/订阅”模式的消息传递,使得客户端可以订阅某个频道,当频道有消息产生时,会把消息传递到所有的订阅者。和列表不一样的是,发布和订阅可以是一对...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: