当前位置:   article > 正文

Memcache遍历 获取模糊匹配key对应的记录_memcached get 模糊

memcached get 模糊
memcached只能通过get查找指定的key,而没有提供key的所有查找和key的模糊查找。
模糊查找原理:先拿到memcache服务器里面的全部cache记录,遍历所有的记录(模糊查找:过滤自己的需要的部分key),然后再有get获取key的value。
方式:通过使用memcache 内置方法 Memcache::getExtendedStats(),首先获得items信息,然后在调用getExtendedStats()方法。  
代码:
  1. $mem = new Memcache;
  2. $host = '127.0.0.0:11211';
  3. list($ip, $port) = explode(':', $host);
  4. if (!$mem->connect($ip, $port)) {
  5. die('连接失败!');
  6. }
  7. //获取所有的key
  8. function memcache_keys($mem, $host){
  9. $keys = array();
  10. $items = $mem->getExtendedStats('items');
  11. $items = $items[$host]['items'];
  12. foreach ($items as $key=>$values){
  13. $number = $key;
  14. $str = $mem->getExtendedStats('cachedump', $number, 0); //0表示所有 若为其他数值则取多少条 $number为stats items的数值
  15. $line = $str[$host];
  16. foreach ($line as $k=>$v){
  17. $keys[] = $k;
  18. //模糊获取的话
  19. //if (substr($k, 0, 5) === 'data_') {
  20. // $keys[] = $k;
  21. // }
  22. }
  23. }
  24. return $keys;
  25. }
  26. //获取key的值
  27. $tree = array();
  28. function dictionary($keys, $mem) {
  29. foreach ($keys as $k=>$v) {
  30. $tree[$v] = $mem->get($v);
  31. }
  32. return $tree;
  33. }
  34. print_r(dictionary($words, $mem));
  35. $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的次数)


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/640740
推荐阅读
相关标签
  

闽ICP备14008679号