| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * @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, "缓存清除成功")
- }
|