Seacache类似Memcahced, 单文件实现, 支持并发, 比传统分离小文件缓存方式性能提高一倍
由于缓存文件只有一个,PHP最大寻址能力是2G,过大会指针溢出, 所以只能支持1G的缓存
特点如下:
项目下载地址
require('../secache/secache.php');
$cache = new secache;
$cache->workat('test2_cache');
for($i=1;$i<20;$i++){
$cache->store(md5($i.'_key'),$i);
}
for($i=1;$i<20;$i++){
$key = md5($i.'_key');
if($cache->fetch($key,$return)){
echo '<li>'.$key.'=>'.$return.'</li>';
}else{
echo '<li>Data get failed! <b>'.$key.'</b></li>';
}
}
echo "<hr>";
$key = md5("20_key");
if( $cache->search($key,$return) ){
echo PHP_EOL.$key."=>".$return;
}else{
echo "not find";
}
基于性能考虑有几点说明:
下面详细说明secache的实现原理
secache是一个采用拉链法的hash结构。整个文件分成2个主要部分:
1.索引计数器数据 40-44
2.数据最大空间指针 44-48
3.空闲链表入口地址 48-52
4.hash索引入口地址 (16^4)*4 = 256k