Redis中统计各种数据大小的方法(redis cluster集群 主从节点区别)学到了

随心笔谈12个月前发布 admin
68 0

<?php

$patterns=array(

    ‘foo:.+’,

    ‘bar:.+’,

    ‘.+’,

);

$redis=new Redis();

$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);

$result=array_fill_keys($patterns, 0);

while ($keys=$redis->scan($it, $match=’*’, $count=1000)) {

    foreach ($keys as $key) {

        foreach ($patterns as $pattern) {

            if (preg_match(“/^{$pattern}$/”, $key)) {

                if ($v=$redis->debug($key)) {

                    $result[$pattern] +=$v[‘serializedlength’];

                }

                break;

            }

        }

    }

}

var_dump($result);

?>

© 版权声明

相关文章