欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis中統(tǒng)計各種數(shù)據(jù)大小的方法

 更新時間:2015年03月26日 10:29:47   投稿:junjie  
這篇文章主要介紹了Redis中統(tǒng)計各種數(shù)據(jù)大小的方法,本文使用PHP實現(xiàn)統(tǒng)計Redis內(nèi)存占用比較大的鍵,需要的朋友可以參考下

如果 MySQL 數(shù)據(jù)庫比較大的話,我們很容易就能查出是哪些表占用的空間;不過如果 Redis 內(nèi)存比較大的話,我們就不太容易查出是哪些(種)鍵占用的空間了。

有一些工具能夠提供必要的幫助,比如 redis-rdb-tools 可以直接分析 RDB 文件來生成報告,可惜它不能百分百實現(xiàn)我的需求,而我也不想在它的基礎(chǔ)上二次開發(fā)。實際上開發(fā)一個專用工具非常簡單,利用 SCAN DEBUG 等命令,沒多少行代碼就能實現(xiàn):

復(fù)制代碼 代碼如下:

<?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);

?>

當(dāng)然,前提是你需要提前總結(jié)出可能的鍵模式,簡單但不嚴謹?shù)姆椒ㄊ?MONITOR

復(fù)制代碼 代碼如下:

shell> /path/to/redis-cli monitor |
       awk -F '"' '$2 ~ "ADD|SET|STORE|PUSH" {print $4}'

此外,需要注意的是:因為 DEBUG 返回的 serializedlength 是序列化后的長度,所以最終計算的值小于實際內(nèi)存占用,但考慮到相對大小依然是有參考意義的。

相關(guān)文章

  • Redis自動化安裝及集群實現(xiàn)搭建過程

    Redis自動化安裝及集群實現(xiàn)搭建過程

    這篇文章主要介紹了Redis自動化安裝以及集群實現(xiàn)搭建過程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Redis實現(xiàn)延遲任務(wù)的三種方法詳解

    Redis實現(xiàn)延遲任務(wù)的三種方法詳解

    延遲任務(wù)(Delayed Task)是指在未來的某個時間點,執(zhí)行相應(yīng)的任務(wù),本文為大家整理了三種常見的實現(xiàn)方法,感興趣的小伙伴可以參考一下
    2025-04-04
  • 使用SpringBoot?+?Redis?實現(xiàn)接口限流的方式

    使用SpringBoot?+?Redis?實現(xiàn)接口限流的方式

    這篇文章主要介紹了SpringBoot?+?Redis?實現(xiàn)接口限流,Redis?除了做緩存,還能干很多很多事情:分布式鎖、限流、處理請求接口冪等,文中給大家提到了限流注解的創(chuàng)建方式,需要的朋友可以參考下
    2022-05-05
  • redis.clients.jedis.exceptions.JedisBusyException無法處理異常的解決方法

    redis.clients.jedis.exceptions.JedisBusyException無法處理異常的解決方法

    redis.clients.jedis.exceptions.JedisBusyException異常通常不是 Jedis客戶端直接拋出的標(biāo)準異常,本文就來介紹一下異常的解決方法,感興趣的可以了解一下
    2024-05-05
  • 利用Redis如何實現(xiàn)自動補全功能

    利用Redis如何實現(xiàn)自動補全功能

    這篇文章主要給大家介紹了關(guān)于如何利用Redis如何實現(xiàn)自動補全功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • redis數(shù)據(jù)一致性之延時雙刪策略詳解

    redis數(shù)據(jù)一致性之延時雙刪策略詳解

    在使用redis時,需要保持redis和數(shù)據(jù)庫數(shù)據(jù)的一致性,最流行的解決方案之一就是延時雙刪策略,今天我們就來詳細刨析一下,需要的朋友可以參考下
    2023-09-09
  • 安裝Redis就那么幾步,很簡單

    安裝Redis就那么幾步,很簡單

    Redis是一種非關(guān)系型數(shù)據(jù)庫(NoSQL),NoSQL是以key-value的形式存儲,和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不一樣,不一定遵循傳統(tǒng)數(shù)據(jù)庫的一些基本要求,本文重點給大家介紹安裝Redis的步驟,需要的朋友參考下吧
    2018-11-11
  • Redis分布式限流的幾種實現(xiàn)

    Redis分布式限流的幾種實現(xiàn)

    分布式限流是指通過將限流策略嵌入到分布式系統(tǒng)中,以控制流量或保護服務(wù),本文就來介紹一下Redis分布式限流的幾種實現(xiàn),感興趣的可以了解一下
    2023-12-12
  • Redis配合SSDB實現(xiàn)持久化存儲代碼示例

    Redis配合SSDB實現(xiàn)持久化存儲代碼示例

    這篇文章主要介紹了Redis配合SSDB實現(xiàn)持久化存儲代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Redis入門基礎(chǔ)常用操作命令整理

    Redis入門基礎(chǔ)常用操作命令整理

    這篇文章主要為大家介紹了Redis入門基礎(chǔ)常用操作命令的整理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論