go-redis库的使用
- 安装go-redis库
go get github.com/go-redis/redis/v8
github链接
- 创建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
}
redigo的使用
- 安装
go get github.com/gomodule/redigo/redis
- 代码
package main
import (
"fmt"
"github.com/gomodule/redigo/redis"
)
func main() {
c, err := redis.Dial("tcp", "host:port", redis.DialPassword("xxxxxx"))
if err != nil {
fmt.Println(err.Error())
}
r, _ := c.Do("set", "name", "赵六")
fmt.Println(r)
/* 方法1自己转换
r, _ = c.Do("get", "name")
// 需要将接口类型通过断言转换成字节切片,在转换成字符串类型打印
fmt.Println(string(r.([]byte)))
*/
// 方法2:redis包中有封装好的方法
r, err = redis.String(c.Do("get", "name"))
fmt.Println(r)
}
参考文档