• 缓存加标签


    <?php
    #缓存支持TAG标签实现
    $key="1000";
    $val=array(/*big data*/);
    $tags=array("a","b");
    $tag_prefix="my_tags_key_prefix";
    #设置
    $cval=array(
        $val,
        $tags
    );
    foreach($tags as $v){
    	$tagval=cache_get($tag_prefix.$v);
        if(!is_array($tagval))$tagval=array();
        if(!in_array($key,$tagval))
            array_push($tagval,$key);
    	cache_set($tag_prefix.$v,$tagval);
    }
    cache_set($key,$cval);
    #通过KEY获取数据
    $val=cache_get($key);
    if(!is_array($val))
    	$val=null;
    else{
        list($val,$tags)=$val;
        if(!is_array($tags)){
    		$val=null;
    	}else if(count($tags)>0){
            foreach($tags as $v){          
    			$tagval=cache_get($tag_prefix.$v);
                if(!is_array($tagval)||!in_array($key,$tagval)){
                    cache_delete($key);
                    $val=null;
                    break;
                }              
            }
        }else
    		$val=null;
    }
    #通过TAG获取数据
    $tag="a";
    $tagval=cache_get($tag_prefix.$tag);
    if(!is_array($tagval))$tagval=array();
    $val=array();
    foreach($tagval as $v){
        $sval=cache_get($v);
        if($sval!=null)array_push($val,$sval);
    }
    #通过key删除数据
    cache_delete($key);
    #通过tag删除数据
    $tag="a";
    $tagval=cache_get($tag_prefix.$tag);
    if(!is_array($tagval))$tagval=array();
    foreach($tagval as $v){
        cache_delete($v);
    }
    

      

  • 相关阅读:
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    Oracle分析函数-排序排列(rank、dense_rank、row_number、ntile)
  • 原文地址:https://www.cnblogs.com/liushannet/p/5347510.html
Copyright © 2020-2023  润新知