memcache linux 下的使用

近来一直对memcache的telnet使用方法有些苦恼,不明白其中的一些参数代表什么意思,查询很多资料,终于搞明白了一些,另外还学习了PHP遍历memcache的方法,但由于我们很多服务器都加载cookie的加密扩展,很多的键值都是MD5加密,不过对于没有加密的服务器还是有些用处的。总结如下:

一,telnet请求命令格式

<command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n
1,<command name> 可以是”set”, “add”, “replace”。
“set”表示按照相应的<key>存储该数据,没有的时候增加,有的覆盖。
“add”表示按照相应的<key>添加该数据,但是如果该<key>已经存在则会操作失败。
“replace”表示按照相应的<key>替换数据,但是如果该<key>不存在则操作失败

2,<key> 客户端需要保存数据的key。

3,<flags> 是一个16位的无符号的整数(以十进制的方式表示)。
该标志将和需要存储的数据一起存储,并在客户端get数据时返回。
客户可以将此标志用做特殊用途,此标志对服务器来说是不透明的。

4,<exptime> 过期的时间。
若为0表示存储的数据永远不过时(但可被服务器算法:LRU 等替换)。
如果非0(unix时间或者距离此时的秒数),当过期后,服务器可以保证用户得不到该数据(以服务器时间为标准)。

5,<bytes> 需要存储的字节数(不包含最后的”\r\n”),当用户希望存储空数据时,<bytes>可以为0

6,“STORED\r\n”:表示存储成功 .“NOT_STORED\r\n”:表示存储失败,但是该失败不是由于错误。

例:set key 0 8 4
输入:zhao
说明:键是key ,0 为flags , 8 为过期时间8秒,4 为值的长度 ,zhao为键的值

stats items 列出所有的items

stats items
STAT items:1:number 220
STAT items:1:age 83095
STAT items:2:number 7
STAT items:2:age 1405
[...]
END

stats cachedump 1 0 //列出所有的key,1为items:1,这个值,0为所有,也可指定列出多少条

stats cachedump  1 0
ITEM key1 [8 b; 1331609364 s]
ITEM key2 [8 b; 1331609364 s]

get key 列出key的值

get key1
VALUE key1 0 8
zhangyan

二,通过PHP,遍历所有键值

<?php

/*
 * 首先连接到memcache,列出所有的ITEMS
 * 然后将ITEMS下的KEY列出来,进行遍历,将值输出
 */
$host = '192...43';
$port = 11211;
$mem = new Memcache();
$mem->connect($host,$port);
$items=$mem->getExtendedStats ('items');
$items=$items["$host:$port"]['items'];//列出所有的ITEMS项目

for ($i=1,$len=count($items);$i<=$len;$i++)
{
    //$number=$items[$i]['number'];
    $str=$mem->getextendedstats("cachedump",$i,0);//输出每个ITEMS下的KEY
    //var_dump($str);
    $line=$str["$host:$port"];
    if (is_array($line)&&count($line)>0)
    {
        foreach($line as $key =>$value){
            echo $key.'--';
            print_r($mem->get($key));
            echo "\r\n";
        }
        }
}
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值