golang操作redis

go-redis库的使用

  1. 安装go-redis库
    go get github.com/go-redis/redis/v8

github链接

  1. 创建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))
  1. 从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的使用

  1. 安装
    go get github.com/gomodule/redigo/redis
  2. 代码
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)
}

参考文档

posted @ 2022-03-05 19:03  专职  阅读(258)  评论(0编辑  收藏  举报