go get github.com/go-redis/redis/v8
- 创建redis客户端并设置值
// 短信验证码发送成功,将验证码保存到redis
rdb := redis.NewClient(&redis.Options{
Network: "tcp", // 默认值也是tcp,可以省略不写
Addr: fmt.Sprintf("%s:%d", global.ServerConfig.RedisInfo.Host, global.ServerConfig.RedisInfo.Port),
// 注意:redis只有>=6.0的时候才能使用用户名,小于6.0不能写用户名,否则报错
// ERR wrong number of arguments for 'auth' command
//Username: global.ServerConfig.RedisInfo.User,
Password: global.ServerConfig.RedisInfo.Password,
DB: 0, // 默认值也是0,可以省略不写
})
rdb.Set(c, sendSmsForm.Mobile, code, time.Second * time.Duration(global.ServerConfig.SMSInfo.ExpireAt))
- 从redis中获取值
// 校验注册短信验证码是否正确
rdb := redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%d", global.ServerConfig.RedisInfo.Host, global.ServerConfig.RedisInfo.Port),
Password: global.ServerConfig.RedisInfo.Password,
})
_, err := rdb.Get(context.Background(), registerForm.Mobile).Result()
if err == redis.Nil {
c.JSON(http.StatusBadRequest, gin.H{"code": "验证码错误"})
return
}