go-zero快速使用redis

快乐的事情总是很短的,所以我们用记忆来延长这种感觉在心里面的存在时间。

redis是一种基于内存的存储容器,,他可以用来作为缓存 ,数据库,特点是速度很快,提供了很多常见的数据结构来对数据各种各样的操作。经常用于企业系统的各个方面,是比较常用的框架。

redis在使用上是类似map结构的,都是基于key-value形式的操作,而不同类型的数据结构则体现在value上面,key的类型都是string。

为了使用redis,我们需要下载redis,可以到官网去下载redis,这里我下载的redis5的版本 ,具体的操作可以参考菜鸟教程。

下面来看看go-zero怎么使用redis。

go-zero里面已经包含了集成redis的包,所以我们不需要拉redis的包

然后创建一个项目,用如下命令

  
goctl api new zeroredis

注意这里的项目名称如果用zero-redis的话,会报命名的错误,所以这里没有加-。

  
 api new command service name not support strikethrough, because this will used by function name

然后在配置文件里面配置redis的连接

  
Name: zeroredis-api  
Host: 0.0.0.0  
Port: 8888  
  
# redis  
Redis:  
 Url: localhost:6379  

对应的config.go如下

  
package config  
  
import "github.com/zeromicro/go-zero/rest"  
  
type Config struct {  
 rest.RestConf  
  
 //redis  
 Redis struct {  
 Url string  
 }  
}  

最后就在main方法里面去操作redis

  
package main  
  
import (  
 "flag"  
 "fmt"  
 "github.com/zeromicro/go-zero/core/stores/redis"  
 "github.com/zeromicro/go-zero/rest"  
  
 "zeroredis/internal/config"  
 "zeroredis/internal/handler"  
 "zeroredis/internal/svc"  
  
 "github.com/zeromicro/go-zero/core/conf"  
)  
  
var configFile = flag.String("f", "etc/zeroredis-api.yaml", "the config file")  
  
func main() {  
 flag.Parse()  
  
 var c config.Config  
 conf.MustLoad(*configFile, &c)  
  
 server := rest.MustNewServer(c.RestConf)  
 defer server.Stop()  
  
 ctx := svc.NewServiceContext(c)  
 handler.RegisterHandlers(server, ctx)  
  
 fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)  
  
 fmt.Println("redis config=", c.Redis.Url)  
 //go-zero里面封装的redis的配置  
 redisConf := redis.RedisConf{  
 Host: c.Redis.Url,  
 Type: "node",  
 }  
 //获取操作redis的结构体  
 op, err := redis.NewRedis(redisConf)  
 if err != nil {  
 fmt.Println("redis conn err=%v", err)  
 }  
 nameKey := "name"  
 val := "yu"  
 //给redis加入一条数据  
 err = op.Set(nameKey, val)  
  
 if err != nil {  
 fmt.Println("redis set err=%v", err)  
 }  
  
 //根据key获取value  
 ret, err := op.Get(nameKey)  
 if err != nil {  
 fmt.Println("redis get err=%v", err)  
 }  
 fmt.Println("ret=", ret)  
 server.Start()  
  
}  

在启动项目之前,需要执行 go mod tidy更新redis的包

注意启动之前需要先启动redis-server,然后可以看到控制台的打印了我们设置进去的值。到此go-zero使用redis就好了。

总结 go-zero使用redis,第一步需要先启动redis-server,这个server就是用来保存数据和获取数据的地方,然后在项目里面配置redis的连接信息,最后就是使用 redis.NewRedis方法获取到redis的操作对象,就可以调用redis提供的各种API了。

0
0
0
0
评论
未登录
暂无评论