一 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. 说说 Redis 事务

    更多技术文章,请关注我的个人博客 www.immaxfang.com 和小公众号 Max的学习札记. Redis 事务简介 Redis 只是提供了简单的事务功能.其本质是一组命令的集合,事务支持一次执 ...

  2. 斑马打印机二维码标签制作(.prn文件)基础简单快速上手

    在工厂生产中,经常需要一线员工在电脑上输入订单号的情况.订单号往往很长,手输容易出错,并且浪费时间,所以常常使用扫码枪扫描二维码的方式输入订单号,本篇就是记录斑马打印机.prn标签模板的制作和使用. ...

  3. 三、redis环境安装

    三.redis环境安装 3.1.下载和安装 下载地址:https://github.com/tporadowski/redis/releases   使用以下命令启动redis服务端 redis-se ...

  4. 我要涨知识 —— TypeScript 常见面试题(一)

    1.ts 中的 any 和 unknown 有什么区别? unknown 和 any 的主要区别是 unknown 类型会更加严格:在对 unknown 类型的值执行大多数操作之前,我们必须进行某种形 ...

  5. PHP 模仿表单提交

    function curl($url,$data,$headers){ $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_UR ...

  6. cookies和session总结

    1.作为基础知识,但是也是容易被我们忽略的知识. 2.从我的一次面试中,面试官问到,session是什么?和cookies有什么关系,当时我以为很简单,便顺口回答到,session是为了解决http无 ...

  7. K8S kubesphere安装mysql

    原先我们使用Docker按照mysql时候的命令 docker run -p 3306:3306 --name mysql-01 \ -v /mydata/mysql/log:/var/log/mys ...

  8. Lakehouse架构指南

    你曾经是否有构建一个开源数据湖来存储数据以进行分析需求? 数据湖包括哪些组件和功能? 不了解 Lakehouse 和 数据仓库 之间的区别? 或者只是想管理数百到数千个文件并拥有更多类似数据库的功能但 ...

  9. 《HelloGitHub》第 80 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  10. java.util.Date和java.util.Calendar

    Date date = new Date();//分配初始化一个Date()对象 Calendar cal = Calendar.getInstance();//获取一个基于当前时间的日历 int d ...