在 GoFrame 中,Redis 操作的结果处理主要通过 *redis.Cmd 对象来实现。*redis.Cmd 对象表示一条 Redis 命令,它包含了执行命令后的结果以及错误信息。

以下是一些基本的 Redis 操作和结果处理的示例:
package main

import (
"fmt"
"github.com/gogf/gf/frame/g"
)

func main() {
// 获取 *redis.Client 对象
redis := g.Redis()

// Set 操作,设置键值对
setCmd := redis.Set("key", "value", 0)

// 获取命令的执行结果和错误
setResult, setErr := setCmd.Result()
if setErr != nil {
fmt.Println("Error setting value:", setErr)
return
}
fmt.Println("Set result:", setResult)

// Get 操作,获取值
getCmd := redis.Get("key")

// 获取命令的执行结果和错误
getResult, getErr := getCmd.Result()
if getErr != nil {
fmt.Println("Error getting value:", getErr)
return
}
fmt.Println("Get result:", getResult)

// Del 操作,删除键值对
delCmd := redis.Del("key")

// 获取命令的执行结果和错误
delResult, delErr := delCmd.Result()
if delErr != nil {
fmt.Println("Error deleting value:", delErr)
return
}
fmt.Println("Del result:", delResult)

// 再次获取值
getResultAgain, getErrAgain := redis.Get("key").Result()
if getErrAgain == g.RedisNil {
fmt.Println("Value not found")
} else if getErrAgain != nil {
fmt.Println("Error getting value:", getErrAgain)
return
} else {
fmt.Println("Value:", getResultAgain)
}
}

在这个示例中,我们通过 *redis.Cmd 对象的 Result 方法获取了命令的执行结果和错误。对于不同的 Redis 命令,可能会返回不同的类型的结果,具体的返回类型和方法可以参考 github.com/go-redis/redis/v8 包的文档。

需要注意的是,对于某些 Redis 命令,如果键不存在或者发生其他错误,Result 方法可能会返回 g.RedisNil 错误。在处理这些错误时,需要注意判断错误的类型。


转载请注明出处:http://www.zyzy.cn/article/detail/7679/GoFrame