文章目录
- 一 go-redis介绍
 - 二 go-redis安装
 - 三 redis初始化连接
 - 四 存储mail邮件
 - 五 存储token
 - 六 最后
 
一 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配置开发工作就正式完成。
 -  
接下来就开始发送邮件的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。
 
欢迎大家加入 夏沫の梦的学习交流 进行学习交流经验,点击



















