go-zero整合单机版Redis并实现增删改查
在go-zero框架中整合单机版Redis并实现增删改查的基本步骤如下:
- 引入go-redis依赖和go-zero的redis客户端依赖。
- 配置Redis连接。
- 使用go-zero提供的Redis客户端进行操作。
以下是一个简单的示例代码:
首先,确保你已经安装了go-zero的redis模块:
go get -u github.com/tal-tech/go-zero/core/stores/redis
然后,在你的代码中:
package main
import (
"context"
"fmt"
"github.com/go-redis/redis/v8"
"github.com/tal-tech/go-zero/core/stores/redis"
"github.com/tal-tech/go-zero/core/syncx"
)
var (
rds redis.Redis
once syncx.Once
)
func initRedis(c redis.Config) {
store := redis.New(c)
rds = redis.NewRedis(store)
}
func set(key, value string) error {
return rds.Set(context.Background(), key, value, 0)
}
func get(key string) (string, error) {
return rds.Get(context.Background(), key)
}
func delete(key string) error {
return rds.Del(context.Background(), key)
}
func main() {
// 初始化Redis连接配置
c := redis.Config{
Host: "localhost",
Port: 6379,
Type: redis.NodeType,
Username: "default",
Password: "",
Db: 0,
DialTimeout: 100,
ReadTimeout: 100,
WriteTimeout: 100,
}
// 确保只初始化一次
once.Do(func() {
initRedis(c)
})
// 设置值
err := set("hello", "world")
if err != nil {
fmt.Println("set error:", err)
return
}
// 获取值
val, err := get("hello")
if err != nil {
fmt.Println("get error:", err)
return
}
fmt.Println("get:", val)
// 删除键
err = delete("hello")
if err != nil {
fmt.Println("delete error:", err)
return
}
// 再次获取值,应返回nil
val, err = get("hello")
if err != nil {
fmt.Println("get error:", err)
return
}
if val == nil {
fmt.Println("key not found")
} else {
fmt.Println("get:", val)
}
}
在这个例子中,我们首先定义了一个rds
变量来保存Redis客户端,然后通过initRedis
函数来初始化Redis客户端。之后,我们定义了set
、get
和delete
函数来分别实现Redis的SET、GET和DEL操作。
请注意,这个例子假设你的Redis服务器运行在本地(localhost),端口为6379,并且没有设置密码。根据你的实际配置,你可能需要调整redis.Config
中的Host
、Port
、Username
、Password
和Db
字段。
评论已关闭