T5清理redis或file缓中带tag的指定缓存

T5清理redis或file缓中带tag的指定缓存

前置条件

项目接口中使用了缓存记录冷数据,然后在后台管理界面中提供了手动管理缓存的功能,可删除指定key的缓存或者批量删除。

正文

下面是一个简单事例

接口controller中使用带tag缓存

 public function getCategories(){
        $data=Cache::tag(CACHE_TAG)->get(CACHE_CATEGORIES);
        if($data==null){
            $data = Db::name('category')
                ->where('status',1)
                ->select();
            Cache::tag(CACHE_TAG)->set(CACHE_CATEGORIES,$data,3600*24*30);
        }

        return $data;
    }

后台管理缓存

缓存数据初始页面

public function cache(){

        //加载application下的配置
        $configuration = Config::load(APP_PATH.'config.php');

        $type=$configuration['cache']['type'];

        //缓存中使用了tag,此处获取tag值,在redis服务器中可以查看到该tag包含的所有缓存键
        $key   = 'tag_' . md5(CACHE_TAG);

        //此处使用application下的cache配置,如果直接使用Cache::get方法,加载的cache来自后台config.php所定的缓存类型
        //目的是为了解决application与后台配置的缓存类型不同,导致加载出错
        $value = Cache::connect($configuration['cache'])->get($key);

        $tagKeys = array_filter(explode(',', $value));
        $data = [];

        //redis缓存的处理
        if('redis'==strtolower($type)) {

            foreach ($tagKeys as $id => $key) {
                $data[$id]['sequence'] = $id + 1;
                $data[$id]['key'] = $
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值