gin框架学习-redis

导入包文件:

go get github.com/gomodule/redigo/redis

创建redis处理文件RedisStore:

package tool

import (
	"fmt"
	"github.com/gomodule/redigo/redis"
	"github.com/mojocn/base64Captcha"
	"log"
)

type RedisStore struct {
	client redis.Conn
}

//全局变量, 用来保存redis句柄
var redisStore RedisStore

//初始化redis
func InitRedisStore() (*RedisStore, error ){
	config := cfg.RedisConfig
//连接redis
	client, err := redis.Dial("tcp",config.Addr+":"+config.Port)
	if err!=nil {
		return nil, err
	}
//验证redis redis的配置文件redis.conf中一定要设置quirepass=password, 不然连不上
	_, err = client.Do("auth", config.Password)
	if err!=nil {
		return nil, err
	}
//初始化全局redis结构体
	redisStore = RedisStore{client:client}
//下边一行是将文字识别内容保存到redis中
	base64Captcha.SetCustomStore(&redisStore)
	return &redisStore, nil
}

//设置数据到redis中
func (rs *RedisStore)Set(id string, value string)  {
	fmt.Println("id:",id,",","value:",value)
	_,err := rs.client.Do("Set",id,value, "ex",10*60)
	if err!=nil {
		log.Panic(err)
	}
}

//获取redis中数据
func (rs *RedisStore)Get(id string, clear bool) string {
	val, err := rs.client.Do("Get",id)
	if err!=nil {
		log.Println(err)
		return ""
	}
	if clear {
		_, err = rs.client.Do("DEL",id)
		if err!=nil {
			log.Panic(err)
			return ""
		}

	}
	return string(val.([]byte))
}
 

猜你喜欢

转载自blog.csdn.net/Batac_Lee/article/details/109626264