导入包文件:
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))
}