缓存加标签
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); }
相关文章推荐
- 程序员必知的10大基础实用性算法
- 多重循环
- C++多态机制浅析
- Nginx加多个tomcat实现负载均衡,动静分离
- 结构型设计模式-装饰模式
- 文件系统创建—Java Card开发第二篇
- 缓存换页机制
- AVL树单选转和双旋转
- activiti自定义流程之Spring整合activiti-modeler5.16实例(六):启动流程
- document.documentElement和document.body的区别
- activiti自定义流程之Spring整合activiti-modeler5.16实例(六):启动流程
- web storage 之留言板
- hdu题目分类
- 赞:淘宝版的nginx
- neural network and deep learning笔记(2)
- sim900GPRS使用C语言打电话发短信
- 这么巧妙的思路Common Subsequence
- 360浏览器全球首家支持“内核自主控制”功能
- 归并排序java语言实现--用递归的方法
- 35.leetcode题目100: Same Tree