mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 02:04:07 +00:00
61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
/*
|
|
* @desc:缓存处理
|
|
* @company:云南省奇讯科技有限公司
|
|
* @Author: yixiaohu
|
|
* @Date: 2021/9/13 14:33
|
|
*/
|
|
|
|
package api
|
|
|
|
import (
|
|
"gfast/app/common/api"
|
|
"gfast/app/common/global"
|
|
commService "gfast/app/common/service"
|
|
"github.com/gogf/gf/encoding/gbase64"
|
|
"github.com/gogf/gf/frame/g"
|
|
"github.com/gogf/gf/net/ghttp"
|
|
"github.com/gogf/gf/util/gconv"
|
|
)
|
|
|
|
type cache struct {
|
|
api.CommonBase
|
|
}
|
|
|
|
var Cache = new(cache)
|
|
|
|
// Clear 清除缓存
|
|
func (c *cache) Clear(r *ghttp.Request) {
|
|
cs := commService.Cache.New()
|
|
cs.RemoveByTag(global.SysAuthTag)
|
|
cs.RemoveByTag(global.SysDictTag)
|
|
cs.RemoveByTag(global.SysConfigTag)
|
|
cacheRedis := g.Cfg().GetBool("redis.open")
|
|
if cacheRedis {
|
|
cursor := 0
|
|
for {
|
|
v, err := g.Redis().DoVar("scan", cursor, "match", global.CachePrefix+"*", "count", "100")
|
|
if err != nil {
|
|
c.FailJsonExit(r, err.Error())
|
|
}
|
|
data := gconv.SliceAny(v)
|
|
var dataSlice []string
|
|
err = gconv.Structs(data[1], &dataSlice)
|
|
if err != nil {
|
|
c.FailJsonExit(r, err.Error())
|
|
}
|
|
for _, d := range dataSlice {
|
|
dk := gbase64.MustDecodeToString(d)
|
|
_, err = g.Redis().DoVar("del", dk)
|
|
if err != nil {
|
|
c.FailJsonExit(r, err.Error())
|
|
}
|
|
}
|
|
cursor = gconv.Int(data[0])
|
|
if cursor == 0 {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
c.SusJsonExit(r, "缓存清除成功")
|
|
}
|