<?php
//组数据量小,每个元素包含数据量也小
//设置单缓存
$gkey="1000";
$skey="100";
$sdata=array(/*max data*/);
$a=cache_get($gkey);
$a[$skey]=$sdata;
cache_set($gkey,$a);
//删除单个缓存
$gkey="1000";
$skey="100";
$a=cache_get($gkey);
unset($a[$skey]);
cache_set($gkey,$a);
//获取单个缓存
$gkey="1000";
$skey="100";
$a=cache_get($gkey);
$val=$a[$skey];
//删除全部缓存
$gkey="1000";
cache_delete($gkey);
?>
<?php
//每个元素包含数据量大,单元素数量不多
//设置单缓存
$gkey="1000";
$skey="100";
$sdata=array(/*max data*/);
$temp_key="your prefix".$gkey.uniqid();
$gval=cache_get($gkey);
isset($gval[$skey])&&cache_delete($gval[$skey]);
$gval[$skey]=$temp_key;
cache_set($gkey,$gval);
cache_set($temp_key,$sdata);
//获取单个缓存
$gkey="1000";
$skey="100";
$gval=cache_get($gkey);
$val=isset($gval[$skey])?cache_get($gval[$skey]):null;
//删除单个缓存
$gkey="1000";
$skey="100";
$gval=cache_get($gkey);
isset($gval[$skey])&&cache_delete($gval[$skey]);
//删除一批缓存
$gkey="1000";
$gval=cache_get($gkey);
is_array($gval)&&foreach($gval as $v)cache_delete($v);
cache_delete($gkey);
?>
<?php
//每个元素数据量大,且包含元素量也非常大
//split_len 推荐值:
// 1000 => 1
// 1000 -100000 =>2
// 100000 以上 => 3
//设置单缓存
$gkey="1000";
$skey="100";
$split_len=2;
$sdata=array(/*max data*/);
$temp_key="your prefix".$gkey.uniqid();
$gval=cache_get($gkey);
$rid=substr(md5($skey),0,$split_len);
if(isset($gval[$rid])){
$gkey_prefix=$gval[$rid];
$ggval=cache_get($gkey_prefix);
isset($ggval[$skey])&&cache_delete($ggval[$skey]);
$ggval[$skey]=$temp_key;
cache_set($gkey_prefix,$ggval);
}else{
$gkey_prefix="your gkey prefix".$gkey.uniqid();
$gval[$rid]=$gkey_prefix;
cache_set($gkey,$gval);
$ggval=array($skey=>$temp_key);
cache_set($gkey_prefix,$ggval);
}
cache_set($temp_key,$sdata);
//获取单个缓存
$gkey="1000";
$skey="100";
$split_len=2;
$gval=cache_get($gkey);
$rid=substr(md5($skey),0,$split_len);
if(isset($gval[$rid])){
$ggval=cache_get($gval[$rid]);
$val=isset($ggval[$skey])?cache_get($ggval[$skey]):null;
}else
$val=null;
//删除单个缓存
$gkey="1000";
$skey="100";
$split_len=2;
$gval=cache_get($gkey);
$rid=substr(md5($skey),0,$split_len);
if(isset($gval[$rid])){
$ggval=cache_get($gval[$rid]);
isset($ggval[$skey])?cache_delete($ggval[$skey]):null;
}
//删除一批缓存
$gkey="1000";
$gval=cache_get($gkey);
is_array($gval)&&foreach($gval as $v){
$ggval=cache_get($v);
is_array($ggval)&&foreach($ggval as $vv)
cache_delete($vv);
cache_delete($v);
}
cache_delete($gkey);
?>