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

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: (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天前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
92 4
|
1月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
197 86
|
15天前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
7月前
|
NoSQL Java 关系型数据库
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
本文介绍在 Spring Boot 中集成 Redis 的方法。Redis 是一种支持多种数据结构的非关系型数据库(NoSQL),具备高并发、高性能和灵活扩展的特点,适用于缓存、实时数据分析等场景。其数据以键值对形式存储,支持字符串、哈希、列表、集合等类型。通过将 Redis 与 Mysql 集群结合使用,可实现数据同步,提升系统稳定性。例如,在网站架构中优先从 Redis 获取数据,故障时回退至 Mysql,确保服务不中断。
294 0
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
|
7月前
|
Java 关系型数据库 数据库
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——Spring Boot 事务配置
本文介绍了 Spring Boot 中的事务配置与使用方法。首先需要导入 MySQL 依赖,Spring Boot 会自动注入 `DataSourceTransactionManager`,无需额外配置即可通过 `@Transactional` 注解实现事务管理。接着通过创建一个用户插入功能的示例,展示了如何在 Service 层手动抛出异常以测试事务回滚机制。测试结果表明,数据库中未新增记录,证明事务已成功回滚。此过程简单高效,适合日常开发需求。
985 0
|
3月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
402 9
|
3月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
7月前
|
NoSQL Java API
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Spring Boot 集成 Redis
本文介绍了在Spring Boot中集成Redis的方法,包括依赖导入、Redis配置及常用API的使用。通过导入`spring-boot-starter-data-redis`依赖和配置`application.yml`文件,可轻松实现Redis集成。文中详细讲解了StringRedisTemplate的使用,适用于字符串操作,并结合FastJSON将实体类转换为JSON存储。还展示了Redis的string、hash和list类型的操作示例。最后总结了Redis在缓存和高并发场景中的应用价值,并提供课程源代码下载链接。
1739 0
|
7月前
|
NoSQL Java Redis
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 安装
本教程介绍在 VMware 虚拟机(CentOS 7)或阿里云服务器中安装 Redis 的过程,包括安装 gcc 编译环境、下载 Redis(官网或 wget)、解压安装、修改配置文件(如 bind、daemonize、requirepass 等设置)、启动 Redis 服务及测试客户端连接。通过 set 和 get 命令验证安装是否成功。适用于初学者快速上手 Redis 部署。
168 0
|
7月前
|
Java 数据库连接 数据库
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——MyBatis 介绍和配置
本文介绍了Spring Boot集成MyBatis的方法,重点讲解基于注解的方式。首先简述MyBatis作为持久层框架的特点,接着说明集成时的依赖导入,包括`mybatis-spring-boot-starter`和MySQL连接器。随后详细展示了`properties.yml`配置文件的内容,涵盖数据库连接、驼峰命名规范及Mapper文件路径等关键设置,帮助开发者快速上手Spring Boot与MyBatis的整合开发。
927 0

热门文章

最新文章