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

马谦马谦马谦 Golang评论2,3231字数 1281阅读 4 分 16 秒阅读模式

一、概述

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
解决gvm工具无法下载安装包的问题 Golang

解决 gvm 工具无法下载安装包的问题

GVM(Go Version Manager) 是一款用于管理和切换不同 Go 语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个 Go 版本,同时还能确保项目之间的依赖关系井然有序。 GVM 的主...
redis源码分析:链表实现 Redis

redis 源码分析:链表实现

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

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

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

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证