(9)go-micro微服务Redis配置

2023-02-16,,,

目录
一 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配置开发工作就正式完成。

接下来就开始发送邮件的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击

(9)go-micro微服务Redis配置的相关教程结束。

《(9)go-micro微服务Redis配置.doc》

下载本文的Word格式文档,以方便收藏与打印。