secache 详解
2024-08-26 19:01:45
介绍下secache缓存,它是属于文件缓存。简单来说,文件缓存就是把缓存数据存储到文件系统 (硬盘)中了,比 内存缓存要慢一些,但是也是有一点优点的。
1.磁盘容量大,
2保存到硬盘,说明 掉电后数据不会丢失,比较可靠
3.使用 固态硬盘的话,速度有了一定提高;同时扩展容易,可以使用磁盘阵列,分布式处理等进行大规模的存储和管理。
而secache的优势(网上介绍):
纯php实现, 无须任何扩展,支持php4 / 5
使用lru算法自动清理过期内容
可以安全用于多进程并发
最大支持1G缓存文件
使用lru算法自动清理过期内容
可以安全用于多进程并发
最大支持1G缓存文件
使用hash定位,读取迅速。
下面来一个secache里面的demo:
<?php
require('../secache/secache.php');
$cache = new secache;
$cache->workat('cachedata'); function microtime_float(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
} $begin_time = microtime_float(); for($i=0;$i<1000;$i++){ $key = md5($i); //You must *HASH* it by your self
$value = str_repeat('No. <strong>'.$i.'</strong> is <em style="color:red">great</em>! ',rand(1,10)); // must be a *STRING* $cache->store($key,$value);
} echo '<h2>Insert x 1000 = ' .( microtime_float() - $begin_time) .' ms</h2>';
echo '<hr /><h2>test read</h2>'; for($i=0;$i<1000;$i+=200){ $key = md5($i); //You must *HASH* it by your self
if($cache->fetch($key,$value)){
echo '<li>'.$key.'=>'.$value.'</li>';
}else{
echo '<li>Data get failed! <b>'.$key.'</b></li>';
}
}
?>
需要提前知道的知识,secache是键值对的二进制数据库,使用Hash索引方式快速查找定位到相应文件在数据文件的位置,且采用拉链法解决冲突。注意 需要hash处理
大致的过程就是,
实例化缓存类后,读缓存文件,内部做关于缓存文件的相关初始化和逻辑,然后 两个重点方法 --存缓存值和 取缓存内容 --
$cache->store($key,$value); 和 $cache->fetch($key,$value)
使用时注意下:
- 键需要自己做has处理,最长32为(超过了可以在php.ini中修改)
- 值必须是字符串,如果为对象请自己先serialize
- 最大支持1g的缓存文件哦
总体来说 ,比较简单。如果不理解,可以尝试看下 这篇文章,http://blog.csdn.net/xuxujian/article/details/7315566 (此外secache 下载链接)http://code.google.com/p/secache/
最新文章
- windows如何远程桌面mac
- Yii2的邮件配置
- Windows Azure Cloud Service (41) 修改云服务IIS托管管道模式为4.0经典模式
- OC面向对象特性:封装
- hiveserver2
- 线上Java应用排查和诊断规范
- PHP ceil() 函数
- 浅析白盒审计中的字符编码及SQL注入
- SecureCRT学习之道:SecureCRT 常用技巧
- emoji Unicode characters
- 初探Lambda表达式/Java多核编程【2】并行与组合行为
- .net很简介的操作json数组
- 框架应用:Mybatis(二) - 动态SQL
- 《java入门第一季》之HashSet存储自定义对象问题以及注意事项
- 【翻译】在Ext JS中创建特定主题的重写
- java中枚举起别名
- WWH——学习方法理解与分析
- python练习题-day17
- SSE图像算法优化系列二十九:基础的拉普拉斯金字塔融合用于改善图像增强中易出现的过增强问题(一)
- APK优化工具zipalign的详细介绍和使用
热门文章
- 0115percona-toolkit安装教程
- (简单) POJ 1321 棋盘问题,回溯。
- Extjs5.1中的新特性
- 8、手把手教你Extjs5(八)自定义菜单2
- 一个苹果证书怎么多次使用——导出p12文件
- angular中的$http配置和参数
- Spring自定义标签
- Hooking Android System Calls for Pleasure and Benefit
- Use Wireshark to capture loopback traffic without a loopback adapter (转)
- html css基础(一)