From 61a10d29390848c9bf71e889d1c1d75ba8a94a55 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期三, 29 七月 2020 15:02:41 +0800 Subject: [PATCH] rm redis, use local cache --- go.sum | 2 - cache/redis.go | 50 ++++++++++++------------ go.mod | 3 - service/userService.go | 62 ++++++++++++++++++++++--------- 4 files changed, 70 insertions(+), 47 deletions(-) diff --git a/cache/redis.go b/cache/redis.go index af658ee..4d55345 100644 --- a/cache/redis.go +++ b/cache/redis.go @@ -1,26 +1,26 @@ package cache - -import ( - "fmt" - "github.com/astaxie/beego" - redigo "github.com/gomodule/redigo/redis" -) - -var pool *redigo.Pool - -func init() { - redisHost := beego.AppConfig.String("redisIp") - redisPort,_ := beego.AppConfig.Int("redisPort") - poolSize := 20 - pool = redigo.NewPool(func() (redigo.Conn, error) { - c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%d", redisHost, redisPort)) - if err != nil { - return nil, err - } - return c, nil - }, poolSize) -} - -func Get() redigo.Conn { - return pool.Get() -} \ No newline at end of file +// +//import ( +// "fmt" +// "github.com/astaxie/beego" +// redigo "github.com/gomodule/redigo/redis" +//) +// +//var pool *redigo.Pool +// +//func init() { +// redisHost := beego.AppConfig.String("redisIp") +// redisPort,_ := beego.AppConfig.Int("redisPort") +// poolSize := 20 +// pool = redigo.NewPool(func() (redigo.Conn, error) { +// c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%d", redisHost, redisPort)) +// if err != nil { +// return nil, err +// } +// return c, nil +// }, poolSize) +//} +// +//func Get() redigo.Conn { +// return pool.Get() +//} \ No newline at end of file diff --git a/go.mod b/go.mod index 3081d91..5496fcc 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190808125512-07798873deee github.com/astaxie/beego v1.12.1 - github.com/go-sql-driver/mysql v1.4.1 - github.com/gomodule/redigo v2.0.0+incompatible + github.com/mattn/go-sqlite3 v1.10.0 github.com/robfig/cron v1.2.0 github.com/satori/go.uuid v1.2.0 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect diff --git a/go.sum b/go.sum index 69621f4..84f170d 100644 --- a/go.sum +++ b/go.sum @@ -56,14 +56,12 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= -github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= diff --git a/service/userService.go b/service/userService.go index a3e643f..9ca0963 100644 --- a/service/userService.go +++ b/service/userService.go @@ -1,15 +1,15 @@ package service import ( - "car-service/cache" "car-service/extend/util" "car-service/models" "car-service/vo" "errors" "fmt" "github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi" - "github.com/gomodule/redigo/redis" "github.com/satori/go.uuid" + "sync" + "time" ) type UserService struct { @@ -135,26 +135,52 @@ return false } +type CodCache struct { + phoneNum string + cod string + ex time.Time +} +var codMap = make(map[string]CodCache) +var codLock sync.RWMutex func add2Cache(phoneNum string, code string) { //鍐欏埌redis缂撳瓨涓� - c := cache.Get() - defer c.Close() - - reply, err := c.Do("SET", phoneNum, code, "EX", 5 * 60)//瓒呮椂浜斿垎閽� - if err != nil { - fmt.Println("鍐欏叆redis澶辫触") - } else { - fmt.Println("鍐欏叆redis鎴愬姛,reply:", reply) + //c := cache.Get() + //defer c.Close() + // + //reply, err := c.Do("SET", phoneNum, code, "EX", 5 * 60)//瓒呮椂浜斿垎閽� + //if err != nil { + // fmt.Println("鍐欏叆redis澶辫触") + //} else { + // fmt.Println("鍐欏叆redis鎴愬姛,reply:", reply) + //} + codLock.Lock() + defer codLock.Unlock() + expireTime := time.Now().Add(time.Minute * 5) + codMap[phoneNum] = CodCache{ + phoneNum:phoneNum, + cod: code, + ex:expireTime, } } func existCode(phoneNum string) (bool,string) { - c := cache.Get() - defer c.Close() - - r, err := redis.String(c.Do("GET", phoneNum)) - if err != nil { - fmt.Println("existCode err:", err) - return false,"" + //c := cache.Get() + //defer c.Close() + // + //r, err := redis.String(c.Do("GET", phoneNum)) + //if err != nil { + // fmt.Println("existCode err:", err) + // return false,"" + //} + //return true,r + codLock.Lock() + defer codLock.Unlock() + if cache,exist := codMap[phoneNum];exist { + if cache.ex.Before(time.Now()) {//宸茶繃鏈� + return false, "" + } else { + return true, cache.cod + } + } else { + return false, "" } - return true,r } \ No newline at end of file -- Gitblit v1.8.0