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