您的位置:首页 > 其它

缓存加标签

2016-04-02 14:12 239 查看
<?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);
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: