码迷,mamicode.com
首页 > 其他好文 > 详细

缓存加标签

时间:2016-04-02 14:53:43      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

<?php
#缓存支持TAG标签实现
#为对TAG做分散存储,SO,TAG标签量不能太.
$key="1000";
$val=array(/*big data*/);
$tags=array("a","b");
$tag_key="my_tags_key";
#设置	
$cval=array(
	$val,
	$tags
);
$tagval=cache_get($tag_key);
if(!is_array($tagval))$tagval=array();
foreach($tags as $v){
	if(!isset($tagval[$v]))
		$tagval[$v]=array();
	if(!in_array($key,$tagval[$v]))
		array_push($tagval[$v],$key);
}
cache_set($tag_key,$tagval);
cache_set($key,$cval);
#通过KEY获取数据
$val=cache_get($key);
if(is_array($val)){
	list($val,$tags)=$val;
	if(is_array($tags)&&count($tags)>0){
		$tagval=cache_get($tag_key);
		foreach($tags as $v){			
			if(!isset($tagval[$v])||in_array($key,$tagval[$v])){
				cache_delete($key);
				$val=null;
				break;
			}				
		}
	}
}
#通过TAG获取数据
$tag="a";
$tagval=cache_get($tag_key);
if(!is_array($tagval))$tagval=array();
$val=array();
if(isset($tagval[$tag])&&is_array($tagval[$tag])){
	foreach($tagval[$tag] as $v){
		$sval=cache_get($v);
		if($sval!=null)array_push($val,$sval);
	}
}
#通过key删除数据
cache_delete($key);
#通过tag删除数据
$tag="a";
$tagval=cache_get($tag_key);
if(!is_array($tagval))$tagval=array();
if(isset($tagval[$tag])&&is_array($tagval[$tag])){
	foreach($tagval[$tag] as $v){
		cache_delete($v);
	}
}

  

缓存加标签

标签:

原文地址:http://www.cnblogs.com/liushannet/p/5347510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!