Memcache遍历 获取模糊匹配key对应的记录
来源:互联网 发布:罗克韦尔plc编程手册 编辑:程序博客网 时间:2024/05/16 14:01
memcached只能通过get查找指定的key,而没有提供key的所有查找和key的模糊查找。
模糊查找原理:先拿到memcache服务器里面的全部cache记录,遍历所有的记录(模糊查找:过滤自己的需要的部分key),然后再有get获取key的value。
方式:通过使用memcache 内置方法Memcache::getExtendedStats(),首先获得items信息,然后在调用getExtendedStats()方法。
代码:$mem = new Memcache; $host = '127.0.0.0:11211'; list($ip, $port) = explode(':', $host); if (!$mem->connect($ip, $port)) { die('连接失败!'); } //获取所有的keyfunction memcache_keys($mem, $host){ $keys = array(); $items = $mem->getExtendedStats('items'); $items = $items[$host]['items']; foreach ($items as $key=>$values){ $number = $key; $str = $mem->getExtendedStats('cachedump', $number, 0); //0表示所有 若为其他数值则取多少条 $number为stats items的数值 $line = $str[$host]; foreach ($line as $k=>$v){ $keys[] = $k; //模糊获取的话 //if (substr($k, 0, 5) === 'data_') { // $keys[] = $k; // } } } return $keys; }//获取key的值 $tree = array(); function dictionary($keys, $mem) { foreach ($keys as $k=>$v) { $tree[$v] = $mem->get($v); } return $tree; } print_r(dictionary($words, $mem)); $words = memcache_keys($mem, $host);注意:通过遍历items 的方法貌似只能获取最多2M的数据,如果Item 数据大于2M ,后面的key 就取不到了
memcache的stats命令详解:
1. stats
2. stats reset 清空统计数据
3. stats malloc 显示内存分配数据 操作是error
4. stats maps 操作是error
5. stats sizes 输出所有item的大小和个数
6. stats slabs 显示各个slab的信息,包括chunk的大小、数目、使用情况等
7. stats items 显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)
8. stats cachedump slab_id limit_num 显示某个slab中的前limit_num个key列表
//执行stats cachedump 3 0命令。这里的3表示上面图中items后面的数字,0标示显示全部的数据,如果是1就标示只显示1条。
//结果 ITEM hello [6 b; 1413522321 s] 【大小,过期时间,永不过期则是服务器启动时间】
9. stats detail [on|off|dump] 设置或者显示详细操作记录 ,on:打开详细操作记录,off:关闭详细操作记录,dump:显示详细操作记录(每一个键值get、set、hit、del的次数)
1 0
- Memcache遍历 获取模糊匹配key对应的记录
- 遍历Memcache的key
- 遍历memcache中已缓存的key
- memcache遍历、删除key
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 对memcache的数据(key-value)进行遍历操作
- java MemCachedClient遍历memcache中所有的key
- java MemCachedClient遍历memcache中所有的key
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 对memcache的数据(key-value)进行遍历
- 遍历获取JSONObject的所有Key
- json遍历获取KEY
- 聚类
- HDU 3340 Rain in ACStar(线段树+几何)
- flex学习
- memcached安装及与spring集成
- Android开发中的Extras
- Memcache遍历 获取模糊匹配key对应的记录
- Android之View篇②
- 第8周项目4
- Android之View篇③
- linux中的glob、grep、正则表达式
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- Android之View篇④
- 解决Android SDK Manager更新失败问题
- JavaWeb——Day04_2