Go语言中如何二次封装redis(万能插件)

764 阅读1分钟

项目介绍

  • 这个库采用go-redis v9️版本二次封装而来,让你可以将该库应用到不同项目中使用.
  • 库分为集群模式,和单体模式两种.
  • 自己在初始化的时候可以选择.

项目使用

这次我们用goFrame框架来演示

先安装依赖

go get -u gitee.com/golang520/g-redis@latest

初始化库(这个初始化也可以在main函数中)

func init() {
	builder := redis.NewRedisBuilder(false, "127.0.0.1:6379", "123456789", 0)
	errs := redis.NewRedisPool().SetBuilder(builder).Init()
	if errs != nil {
		fmt.Println(errs)
		os.Exit(1)
	}
}

使用这个库

  • 我们要在sUser结构体里面继承redis.BaseRedisModel结构体,看下面代码!

注意:sUser 结构体是goFrame框架自动生成的!而我们只需要继承g-redis中的redis.BaseRedisModel就可以了,所以代码非常少的!

type sUser struct {
    redis.BaseRedisModel
}
  • 接下来就是在sUser结构中的方法,获取g-redis实例client对象,然后就可以操作redis中的方法了!

下面的GetInfo()方法也是goFrame生成的,而我们要写的是GetInfo()方法里面的内容!

func (s *sUser) GetInfo(ctx context.Context, in *model.UserGetInfoInput) (out *model.UserGetInfoOutPut, err error) {
    client, err := s.GetClient()
    if err != nil {
       return nil, err
    }
    errs := client.Set(ctx, "test", "test", -1).Err()
    if errs != nil {
       return nil, errs
    }
    return nil, nil
}

总结

其实这个 g-redis 在任何项目中都可以使用.非常好上手的.

仓库地址

gitee.com/golang520/g…

最后献上一张图

image.png

关注我,后期要出 mysql 的操作库.