一 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配置的更多相关文章

  1. 阿里巴巴微服务与配置中心技术实践之道 配置推送 ConfigurationManagement ConfigDrivenAnyting

    阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08 在面向分布式的微服务系统中,如何通过更高效的配置管理方式,帮助微服务系统架构持续"无痛"的演进 ...

  2. flagr a/b 测试特性开关&&微服务动态配置工具

    flagr a/b 测试特性开关&&微服务动态配置工具 简单运行 docker docker run -it -p 18000:18000 checkr/flagr 运行界面 说明 参 ...

  3. 基于Apollo实现.NET Core微服务统一配置(测试环境-单机)

    一.前言 注:此篇只是为测试环境下的快速入门.后续会给大家带来生产环境下得实战开发. 具体的大家可以去看官方推荐.非常的简单明了.以下介绍引用官方内容: Apollo(阿波罗)是携程框架部门研发的分布 ...

  4. 携程框架Apollo实现.NET Core微服务统一配置(测试环境-单机)

    Apollo实现.NET Core微服务统一配置(测试环境-单机) https://www.cnblogs.com/guolianyu/p/10065999.html 一.前言 注:此篇只是为测试环境 ...

  5. 使用 Consul 作为 Python 微服务的配置中心

    使用 Consul 作为 Python 微服务的配置中心 Consul 作为数据中心,提供了 k/v 存储的功能,我们可以利用这个功能为 Python 微服务提供配置中心. Consul 提供了 HT ...

  6. 阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08

    阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08

  7. 【微服务】- 配置中心 - Nacos

    微服务 - 配置中心 - Nacos 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 今天的学习任务就是学习使用Nacos作为配置中心. 努力克制自己,拒绝摆烂! 什么是配 ...

  8. eShopOnContainers 看微服务 ②:配置 启动

    一.什么是docker Docker 是一个开源项目,通过把应用程序打包为可移植的.自给自足的容器(可以运行在云端或本地)的方式,实现应用程序的自动化部署. 使用 Docker 的时候,需要创建一个应 ...

  9. Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证

    关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...

  10. go micro 微服务框架温习

    go mod edit -require="github.com/chromedp/chromedp@v0.1.0" @后面加上你需要的版本号.就可以 已经修改go.mod 里的依 ...

随机推荐

  1. 获取cpu的核数

    //获取cpu的核数 System.out.println(Runtime.getRuntime().availableProcessors());

  2. python环境安装(pyhon和pycharm)

    一.python安装 在地址栏输入https://www.python.org/进入python官网, 点击windows后会出现各种可供下载的历史版本, 安装包下载后,双击运行 点击下一步 勾选下面 ...

  3. Burpsuite系列1--自动扫描

    第一章 简述     Burpsuite是基于Java的用于web安全的工具,能够进行爬虫.代理.编码.密码爆破等任务,并支持对XSS漏洞.文件包含等漏洞的主动扫描或被动扫描.burpsuite2.0 ...

  4. 基于Spring的发布订阅模式 EventListener

    基于Spring的发布订阅模式 在我们使用spring开发应用时,经常会碰到要去解耦合一些依赖调用,比如我们在做代码的发布流程中,需要去通知相关的测试,开发人员关注发布中的错误信息.而且通知这个操作又 ...

  5. java学习之IO流

    java io流有四大家族分别是: 1.InputStream(字节输入流) 2.OutputStream(字节输入出流)3.Reader(字符输入流)4.Writer(字符输出流)四个类都是抽象类 ...

  6. IOT黑客入门篇之初探Badusb

    什么是Badusb?   BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击.例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存 ...

  7. HDLBits答案——Circuits

    1 Combinational Logic 1.1 Basic Gates 1.1.1 Exams/m2014 q4h module top_module ( input in, output out ...

  8. jmeter 从多个数中随机取一个值的方法

    问题描述:使用jmeter进行接口测试时,遇到枚举值(如:10代表闲置.15代表使用中.20代表维修等)我们需要随机取一个类型传到接口中. 解决思路:通过函数助手查找随机函数,找到__chooseRa ...

  9. php+nginx环境搭建

    PHP安装教程参考:https://www.cnblogs.com/kyuang/p/6801942.html 1.安装基础环境: yum -y install gcc bison bison-dev ...

  10. 你不知道的Map家族中的那些冷门容器

    概述 本篇文章主要讲解下Map家族中3个相对冷门的容器,分别是WeakHashMap.EnumMap.IdentityHashMap, 想必大家在平时的工作中也很少用到,或者压根不知道他们的特性以及适 ...