欧博真人平台

乐鱼轮盘网站错误提示_Golang 官方推选使用的 Redis 客户端 Redigo
你的位置:欧博真人平台 > 欧博百家乐投注 > 乐鱼轮盘网站错误提示_Golang 官方推选使用的 Redis 客户端 Redigo
乐鱼轮盘网站错误提示_Golang 官方推选使用的 Redis 客户端 Redigo
发布日期:2023-10-30 05:28    点击次数:231

乐鱼轮盘网站错误提示_Golang 官方推选使用的 Redis 客户端 Redigo

乐鱼轮盘网站错误提示_ uG环球现金网[[414601]] 01先容

在之前的著作先容过 Golang 操作 Redis 的三方库 go-redis,本文主要先容另外一个 Golang 操作 Redis 的三方库 redigo,它是 Golang 官方推选使用的 Redis 客户端。

火博app

go-redis 三方库为咱们封装了许多函数来执行 Redis 号召,而 redigo 三方库只消一个 Do 函数执行 Redis 号召,更接近使用 redis-cli 操作 Redis,这少量是我个东谈主相比可爱的,只消熟识 Redis,就不错松驰使用 redigo 手脚客户端操作 Redis,而不需要再去记三方库封装的函数。

使用 go get 号召装配 redigo:

乐鱼轮盘皇冠信用正网
go get github.com/gomodule/redigo/redis 

redigo 库中的 Conn 接口是操作 Redis 的主要接口。

type Conn interface {  // Close closes the connection.  Close() error  // Err returns a non-nil value when the connection is not usable.  Err() error  // Do sends a command to the server and returns the received reply.  Do(commandName string, args ...interface{}) (reply interface{}, err error)  // Send writes the command to the client's output buffer.  Send(commandName string, args ...interface{}) error  // Flush flushes the output buffer to the Redis server.  Flush() error  // Receive receives a single reply from the Redis server  Receive() (reply interface{}, err error) } 

阅读 redigo 库的源码,咱们不错发现 Conn 接口包含 6 个枢纽,本文咱们主要使用 Do 和 Close。

02创建合并

redigo 库提供了多个函数创建合并,本文咱们使用 Dial 函数创建合并,此外,还不错使用 DialURL 函数和 NewConn 函数创建合并,限于篇幅,本文不准备一一先容。

示例代码:

// 合并 redis-server // 创建合并 c, err := redis.Dial("tcp", ":6379") if err != nil {   fmt.Printf("redis.Dial() error:%v", err)   return } // 关闭合并 defer c.Close() 

阅读上头这段代码,咱们使用 Dial 函数创建合并,需要凝视的是,咱们不要健忘关闭合并。

体育赛事

使用该神志主淌若为了读者一又友们容易聚拢,冷漠在坐褥环境中使用合并池,幸免每次执行号召齐需要先创建合并,影响性能。

在其自传性著作《看哪这人》的《我为什么就是命运》一文中,尼采以顽固的自信道出了他的命定性:“我知道我的命运。有朝一日,我的名字将与对某个重大事件的记忆密不可分——某种地球上空前未有的危机,一场最深刻的良心冲突,欧博百家乐投注一项与人们迄今所相信、所要求、所奉为神圣的一切相悖的决定。我不是人,我是炸药。”果如其言,尼采如今已是伟大的哲人王,他的哲学思想也在人类文明的圣殿中熠熠生辉。

杨绛先生曾说:“世界是自己的,与他人毫不相关。”

皇冠信用盘平台 03string 操作

redigo 执行 Redis 号召的通用枢纽是使用 Conn 接口的 Do 函数,Do 函数不错发送号召给 Redis 处事器,并复返 Redis 处事器的答谢。

皇冠体育hg86a

Do(commandName string, args ...interface{}) (reply interface{}, err error) 

示例代码:

func stringSet(conn redis.Conn) {  replySet, err := conn.Do("SET", "key1", "value1")  if err != nil {   fmt.Println("SET error: ", err)  }  fmt.Println(replySet) } 

阅读上头这段代码,咱们使用 Do 函数执行 Redis 的 set 号召,限于篇幅,更多对于 string 类型的 redis 号召示例代码,请阅读推送到 GitHub 的本文相关代码。

04复合类型操作

除了操作字符串,咱们还会操作复合类型,redigo 库中的 Args 类型提供了操作复合类型的枢纽 AddFlat。

func (args Args) AddFlat(v interface{}) Args 

写操作:

type User struct {  ID   int64  `redis:"id"`  Name string `redis:"name"` }  // struct func structAdd(conn redis.Conn) {  u1 := User{   ID:   1,   Name: "name1",  }   replyStruct, err := conn.Do("HMSET", redis.Args{}.Add("hkey1").AddFlat(&u1)...)  if err != nil {   fmt.Println("struct err: ", err)  }  fmt.Println(replyStruct) } 

阅读上头这段代码,咱们使用 AddFlat 枢纽将结构体写入 Redis,需要凝视的是结构体字段是可导出的字段称号,而况使用了字段标签 redis。

澳门UA银河影院

读操作:

func structValues(conn redis.Conn) {  v, err := redis.Values(conn.Do("HGETALL", "hkey1"))  if err != nil {   fmt.Println("redis.Values() err: ", err)  }   // redis.ScanStruct()  u2 := new(User)  if err := redis.ScanStruct(v, u2); err != nil {   fmt.Println("redis.ScanStruct() err: ", err)  }   fmt.Printf("%+v\n", u2) } 

阅读上头这段代码,咱们使用两个助手函数 Values 和 ScanStruct,将 Redis 处事器的答谢默契到 struct,redigo 还提供了助手函数 ScanSlice 将 Redis 处事器的答谢默契到 slice。

限于篇幅,对于 map 和 slice 的示例代码,请阅读推送到 GitHub 上的本文相关代码。

网站错误提示皇冠客服飞机:@seo3687 05回来

本文咱们先容了 Golang 官方推选的操作 Redis 的三方库 redigo,它仅需使用 Do 函数执行 Redis 所有号召,它还提供了许多助手函数匡助咱们愈加浅易操作 Redis。

赌球平台推荐

本文转载自微信公众号「Golang话语建立栈」,不错通过以下二维码宽恕。转载本文请磋商Golang话语建立栈公众号。