一 go-redis介绍
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis: 基于键值的存储服务系统,支持多种数据类型,性能高,功能丰富
二 go-redis安装
go get github.com/go-redis/redis
三 redis初始化连接
- 在redis目录下新建一个redis.go文件
- 写入以下代码:
package redis import ( "account/common/micro" "fmt" "github.com/go-redis/redis" ) // Rdb 声明一个全局的rdb变量 var Rdb *redis.Client // Init 初始化连接 func Init() (err error) { Rdb = redis.NewClient(&redis.Options{ Addr: fmt.Sprintf("%s:%d", micro.ConsulInfo.Redis.Host, micro.ConsulInfo.Redis.Port, ), DB: int(micro.ConsulInfo.Redis.Db), // use default DB PoolSize: int(micro.ConsulInfo.Redis.PoolSize), }) _, err = Rdb.Ping().Result() return err } func Close() { _ = Rdb.Close() }
- 在main.go文件中写下:
// 7.初始化Redis连接 if err := redis.Init(); err != nil { logger.Error(err) return } defer redis.Close()
四 存储mail邮件
- 在mail目录下新建mail.go文件,输入代码:
func GetMail(email string) (interface{}, error) { mail, err := redis.Rdb.Get(email).Result() if err != nil { logger.Error(err) return "", err } return mail, nil } func SetMail(email string, code string) { redis.Rdb.Set(email+"mail", code, time.Minute*10) } func DelMail(email string) { redis.Rdb.Del(email + "mail") } func CheckMail(email string, code string) (bool, error) { redisCode, err := GetMail(email + "mail") if fmt.Sprint(redisCode) == code { return true, nil } else { logger.Error(err) return false, err } }
五 存储token
- 在token目录下新建jwt.go文件,输入代码:
func GetToken(userName string) (interface{}, error) { token, err := redis.Rdb.Do("Get", userName+"token").Result() if err != nil { return "", err } return token, nil } func SetToken(userName string, token string) { redis.Rdb.Set(userName+"token", token, time.Minute*30) } func DelToken(userName string) { redis.Rdb.Del(userName + "token") } func CheckToken(userName string, token string) (bool, error) { redisToken, err := GetToken(userName + "token") var mc *MyClaims mc, err = ParseToken(fmt.Sprint(redisToken)) if err != nil { return false, err } if mc.UserName == userName { return true, nil } else { return false, errors.New("登录信息错误") } }
六 最后
- 至此,go-micro微服务Redis配置开发工作就正式完成。
- 接下来就开始发送邮件的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。