(9)go-micro微服务Redis配置
一 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配置的更多相关文章
- 阿里巴巴微服务与配置中心技术实践之道 配置推送 ConfigurationManagement ConfigDrivenAnyting
阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08 在面向分布式的微服务系统中,如何通过更高效的配置管理方式,帮助微服务系统架构持续"无痛"的演进 ...
- flagr a/b 测试特性开关&&微服务动态配置工具
flagr a/b 测试特性开关&&微服务动态配置工具 简单运行 docker docker run -it -p 18000:18000 checkr/flagr 运行界面 说明 参 ...
- 基于Apollo实现.NET Core微服务统一配置(测试环境-单机)
一.前言 注:此篇只是为测试环境下的快速入门.后续会给大家带来生产环境下得实战开发. 具体的大家可以去看官方推荐.非常的简单明了.以下介绍引用官方内容: Apollo(阿波罗)是携程框架部门研发的分布 ...
- 携程框架Apollo实现.NET Core微服务统一配置(测试环境-单机)
Apollo实现.NET Core微服务统一配置(测试环境-单机) https://www.cnblogs.com/guolianyu/p/10065999.html 一.前言 注:此篇只是为测试环境 ...
- 使用 Consul 作为 Python 微服务的配置中心
使用 Consul 作为 Python 微服务的配置中心 Consul 作为数据中心,提供了 k/v 存储的功能,我们可以利用这个功能为 Python 微服务提供配置中心. Consul 提供了 HT ...
- 阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08
阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08
- 【微服务】- 配置中心 - Nacos
微服务 - 配置中心 - Nacos 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 今天的学习任务就是学习使用Nacos作为配置中心. 努力克制自己,拒绝摆烂! 什么是配 ...
- eShopOnContainers 看微服务 ②:配置 启动
一.什么是docker Docker 是一个开源项目,通过把应用程序打包为可移植的.自给自足的容器(可以运行在云端或本地)的方式,实现应用程序的自动化部署. 使用 Docker 的时候,需要创建一个应 ...
- Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证
关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...
- go micro 微服务框架温习
go mod edit -require="github.com/chromedp/chromedp@v0.1.0" @后面加上你需要的版本号.就可以 已经修改go.mod 里的依 ...
随机推荐
- http://localhost:8282/user/findsomeuser[object%20Object]
查看vue中的方法的访问路径是否填写正确. 后端:
- 2022最新版JDK1.8的安装教程、包含jdk1.8的提取码(亲测可用)
文章目录 1.jdk的安装 1.1.下载(百度网盘jdk1.8提取码永久有效) 1.2.双击提取出来的exe,运行程序.如下图 1.3.进入安装向导 1.4.选择默认(安装所有的组件).同时更改安装路 ...
- Redis—问题(1)
写在前面 Redis 是一种 NoSQL 数据库,包含多种数据结构.支持网络.基于内存.可选持久性的键值对存储数据库,在我们的日常开发中会经常使用 Redis 来解决许多问题,比如排行榜.消息队列系统 ...
- day51-正则表达式02
正则表达式02 5.4正则表达式语法02 5.4.6捕获分组 详见5.3.3 例子 package li.regexp; import java.util.regex.Matcher; import ...
- Linux下MMDetection环境配置
1. 准备工作 Linux发行版. Pop!_OS 22.04 LTS (NVIDIA) (Ubuntu衍生) 对Linux进行配置,更改国内镜像源. 安装conda环境. 官网下载安装脚本(bash ...
- 自动化运维?看看Python怎样完成自动任务调度⛵
作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...
- C#自定义控件开发(1)
自定义控件可以用组件或者用户控件来开发,如果是基于基础控件,进行一些扩展,那么可以使用组件,其它的情况可以使用用户控件. 首先新建一个类库项目,然后添加一个组件,取名为ButtonExtend,再添加 ...
- 20、求解从1到20000内的所有水仙花数:每位数字的n次方之和等于其本身,n是这个数的位数。
/* 求解从1到20000内的所有水仙花数:每位数字的n次方之和等于其本身,n是这个数的位数. 共五位数,设置一个数组用来保存数字的每一位,数组的有效长度就是该数的位数.最后读取数组的每位数字来判断水 ...
- redis五种数据结构详解
5.相关介绍和命令 5. redis是单线程+多路io复用技术 多路复用是指使用一个线程来检查多个文件描述符的就绪状态,比如调用select和poll函数,传入多个文件毛舒服,如果有一个文件描述符就绪 ...
- 交叉编译GDB
PC主机安装必要软件 sudo apt-get install bison flex expect-dev build-essential m4 autoconf automake texi2html ...