如何遍历memcached中的item?超级有用

本文介绍了两种遍历Memcached缓存数据的方法:通过telnet命令行和使用PHP脚本。这两种方法均可获取缓存中的item数量、年龄,并进一步读取具体数据。此外,文章还讨论了遍历Memcached数据的实际应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://iamcaihuafeng.blog.sohu.com/159082880.html

 

1.方法一
telnet memcached上面以后用命令方式操作
stats items
STAT items:1:number 3
STAT items:1:age 800
END

items:后面的数字表示memcached的slab id

stats cachedump 1 0
ITEM data2 [19 b; 1283239476 s]
ITEM data3 [6 b; 1283239476 s]
ITEM data4 [20 b; 1283239476 s]
END

2.方法二
用php进行操作
<?php
$host = 'localhost';
$port = 11211;
$mem = new Memcache();
$mem -> connect($host,$port);
$items = $mem -> getExtendedStats('items');
print_r($items);
$items = $items["$host:$port"]['items'];
print_r($items);

foreach ($items as $key => $values){
    echo "key: $key<br />/n";
    $number = $key;
    $str = $mem -> getExtendedStats("cachedump", $number, 0);
    print_r($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";
        }
    }
}
?>

输出如下:
Array
(
    [localhost:11211] => Array
        (
            [items] => Array
                (
                    [1] => Array
                        (
                            [number] => 3
                            [age] => 19
                        )

                )

        )

)
Array
(
    [1] => Array
        (
            [number] => 3
            [age] => 19
        )

)
key: 1<br />
Array
(
    [localhost:11211] => Array
        (
            [data4] => Array
                (
                    [0] => 20
                    [1] => 1283239361
                )

            [data3] => Array
                (
                    [0] => 6
                    [1] => 1283239361
                )

            [data2] => Array
                (
                    [0] => 19
                    [1] => 1283239361
                )

        )

)
data4=>["notebook","stock"]
data3=>"news"
data2=>["disk","favorite"]

3.总结
遍历memcached中的item有什么作用呢?我个人认为大概有如下的作用:
a.可以知道memcached中保存了一些什么样的数据
b.如果想要对memcached中的数据进行批量操作(比如批量删除一些数据、给部分数据增加或减少失效时间等等),如果不能遍历,还真不行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值