获取memcache缓存下所有的键值对信息
来源:互联网 发布:淘宝淘工作 兼职可信吗 编辑:程序博客网 时间:2024/05/20 05:26
缓存是可以在很大程度上提高网站的响应速度和整体性能的工具,但是如果贸然直接修改数据库的数据但是没有更新缓存就很容易使得前端页面上仍然加载脏数据的,因此,对于一个WEB站点来说,缓存内容的管理显得尤为重要,笔者最近做的小项目中用到了memcache,也是时下一个比较流行的分布式缓存管理系统,其中,笔者的站点需要从另外一个站点读取数据并将读到的数据加载至笔者系统的缓存中,笔者希望能够有一个可视化的页面去查看,搜索和修改缓存里的内容,尽管可用于管理memcache的开源站点有很多,但是无奈公司不太信任这些开源网站的安全性,因此笔者试图做一个小页面能够显示站点缓存下所有的内容,以便能够快捷的管理其内容。
其中,在php提供的用于与memcached交互的扩展模块中有memcached与memcache,前者提供方法getAllKeys用于遍历所有Memcached服务器上的key,但是并不保证原子操作,而后者却没有提供任何方法。因此笔者根据官方文档中给出的示例,并结合笔者的分页逻辑,写出一个工具方法,用来获取memcache下所有的KEY-VALUE内容。
不过笔者发现这样使用memcache取出所有键值对儿,性能确实不高,有时还很慢,因此笔者建议,如果试图去管理这些缓存的内容,最好还是直接使用已知的key去拉去缓存中的内容,这样性能是会好很多的!
其中,在php提供的用于与memcached交互的扩展模块中有memcached与memcache,前者提供方法getAllKeys用于遍历所有Memcached服务器上的key,但是并不保证原子操作,而后者却没有提供任何方法。因此笔者根据官方文档中给出的示例,并结合笔者的分页逻辑,写出一个工具方法,用来获取memcache下所有的KEY-VALUE内容。
该方法适用于单台缓存服务器试图取出所有的键值对!
<?php/** * [获取缓存中的信息] * @param [type] $start [开始索引] * @param [type] $limit [长度] * @return [type] [description] */function getAllKeyAndValueInCache($start = 0,$limit){try{global $_MC;$list = array();$cacheStr = CACHE_SERVER.":".CACHE_PORT;$items = $_MC->getExtendedStats('items');$items = $items[$cacheStr]['items'];$i = 0;foreach($items as $key => $values){$number = $key;$str = $_MC->getExtendedStats("cachedump",$number,0);$line = $str[$cacheStr];if( is_array($line) && count($line) > 0){foreach($line as $key => $value){$list[$i] = array('key' => $key,'value' => htmlentities(json_encode($_MC->get($key),JSON_UNESCAPED_UNICODE),ENT_QUOTES));$i++;}}}$result = array();$result[0] = array_slice($list, $start, $limit);$result[1] = count($list); return $result;}catch (Exception $e){//抛出异常}}?>
不过笔者发现这样使用memcache取出所有键值对儿,性能确实不高,有时还很慢,因此笔者建议,如果试图去管理这些缓存的内容,最好还是直接使用已知的key去拉去缓存中的内容,这样性能是会好很多的!
0 0
- 获取memcache缓存下所有的键值对信息
- Memcache遍历查询所有键值的方法
- iOS 得到字典所有的键值对
- JS获取表单所有元素(键值对方式)
- getParameterMap()获取JSP页面所有键值对数据
- 兼容 表单 get post方式 获取表单信息 键值对
- windows下获取某个目录下的所有文件信息
- 查看memcache缓存所有key
- java中HashMap中怎么取得所有的键值对
- MAP中删除所有vlaue值相同的键值对
- js遍历json中所有的键值对
- Spinner绑定键值对信息
- 获取应用的缓存信息
- 获取所有app的信息
- matlab 获取目录下所有文件信息
- LINUX下获取所有进程信息
- Linux下获取所有可用网卡信息
- Linux下获取所有可用网卡信息
- 项目合作遇到的问题及解决办法
- WINdows小技巧
- ansible的安装与使用
- spring 监听器 IntrospectorCleanupListener简介
- UDP 广播机制
- 获取memcache缓存下所有的键值对信息
- Android 进程常驻(1)----开篇
- Ubuntu 测试android真机 lsusb命令出现:????????????no permissions(解决办法)
- git rebase和merge 区别和应用场景
- 中文分词插件SCWS-1.2.3 在Linux环境的安装说明(包括php扩展)
- 求出二维数组中m*n的鞍点
- JDBC连接数据库的几个步骤
- 安卓中不同Activity之间的传值问题用Intent
- Android开发中遇到的坑