Redis數據結構之HyperLogLog

本文作者沒有設置VIP可見,并首發在我的博客:https://blog.liuzijian.com/post/redis-data-structure-hyperloglog.html

目錄

    • 1.概述
    • 2.常用命令
      • 2.1 添加元素
      • 2.2 返回基數估算值
      • 2.3 合并hyperloglog
    • 3.總結

1.概述

基數統計是一種去重復統計功能的基數估計算法,HyperLogLog是用來做基數統計的數據結構,HyperLogLog的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定且是很小的。

在Redis里面,每個HyperLogLog鍵只需要花費12KB內存,就可以計算接近2??個不同元素的基數,這和計算基數時,元素越多耗費內存就越多的集合形成鮮明對比。

但是,因為HyperLogLog只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以HyperLogLog不能像集合那樣,返回輸入的各個元素。

去重類似Java的HashSet,只是不能存儲數據

在這里插入圖片描述

2.常用命令

2.1 添加元素

PFADD key element [element ..]

127.0.0.1:6379> pfadd pf1 1 2 3 4 5 6 5 4 5 6 7 34 2 5 6 4
(integer) 1
127.0.0.1:6379> pfadd pf2 1 2 3 4 5 6 5 4 43 4 21 65 32 54 
(integer) 1

hyperloglog本質上是string

127.0.0.1:6379> type pf1
string

2.2 返回基數估算值

PFCOUNT key [key....]

例:去重后只有8個元素

127.0.0.1:6379> PFCOUNT pf1
(integer) 8

2.3 合并hyperloglog

合并到新的destkey中

PFMERGE destkey sourcekey [sourcekey...]

例:合并pf1和pf2為pfm

127.0.0.1:6379> PFMERGE pfm pf1 pf2
OK
127.0.0.1:6379> pfcount pfm
(integer) 13

3.總結

使用場景:

1.網站UV統計,文章閱讀數UV統計

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87756.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87756.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87756.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

django調用 paramiko powershell 獲取cpu 核數

在 Django 應用中使用 paramiko 庫通過 SSH 連接到遠程服務器并執行命令(例如獲取 CPU 核數)是一個常見的需求。下面是一個如何實現這一過程的步驟指南: 步驟 1: 安裝必要的庫 首先,確保你的 Django 項目中安裝了 paramiko 庫。如…

08-Python文件處理

08-Python文件處理 一、打開關閉文件 可以用 file 對象做大部分的文件操作。 file()在python3中已經被廢除,使用open()打開文件 open 函數 先用open()打開一個文件,創建一個file 對象,再用相關方法才可以調用它進行讀寫。 語法 file ob…

增強現實—Multimodal text style transfer for outdoor vision-and-language navigation

🌟🌟 歡迎來到我的技術小筑,一個專為技術探索者打造的交流空間。在這里,我們不僅分享代碼的智慧,還探討技術的深度與廣度。無論您是資深開發者還是技術新手,這里都有一片屬于您的天空。讓我們在知識的海洋中…

黑馬程序員新版Linux學習筆記——第二部分 基礎命令

一、Linux目錄結構 二、命令基礎 三、ls 列目錄內容 3.1 命令 3.2 參數 3.3 總結 四、cd 切換工作目錄 4.1命令 五、pwd 查看當前工作目錄 5.1命令 六、相對路徑、絕對路徑、特殊路徑符 七、mkdir 創建目錄命令 7.1命令 八、touch、cat、more 文件操作命令 8.1 touch 8.2c…

日常運維問題匯總-25

76.銷售訂單交貨單狀態更新 實務中偶有發生交貨已完成,無需開票或開票已經完成,交貨單狀態為:處理中,且仍然出現在VF04中,如下圖所示: 解決方法: T-CODE:VL_COMPLETE,可對錯誤的DN狀態進行更新…

【2025 年】軟件體系結構考試試卷-期末考試

2025 年軟件體系結構考試試卷 考試學期:2025 考試形式:閉卷 考試時間:120 分鐘 年級:______ 專業:軟件工程 班級:______ 一、單選題(每小題 1.5 分,共 24 分) 關于策略…

4.查看、刪除數據庫

1.顯示所有數據庫 SHOW DATABASE 2.顯示數據庫創建語句 SHOW CREAT DATABASE db_name 例如想查看某個數據庫是怎樣創建的,用的什么字符集啥的。 3.數據庫刪除語句【慎用】 DROP DATABASE [IF EXISTS] db_name 刪除某個數據庫之前一定要確定是否進行了備份。

設計模式 - 原型模式

原型模式(Prototype),在制造業種通常是指大批量生產開始之前研發出的概念模型,并基于各種參數指標對其進行檢驗,效果達到了質量要求,即可參照這個原型進行批量生產。即,原型模式可以用對象創建對…

MySQL數據庫基礎:從零開始的第一步【Linux】

前言 各位小伙伴們,好久不見!近期,我的文章更新頻率確實有些緩慢,在此誠摯地向大家道歉。這個月是我的期末考試月,正處于緊張的復習(也可以說是重新學習)階段。盡管學業繁忙,但我依然…

502 Bad Gateway:服務器作為網關或代理時收到無效響應處理方式

502 Bad Gateway 錯誤是 Web 開發和服務器管理中常見的問題,通常表示網關或代理服務器收到無效響應。這種錯誤可能由多種原因引起,包括后端服務故障、網絡問題或配置錯誤等。了解502錯誤的原因及其處理方式,對于維護網站的可用性和用戶體驗至…

Abel 變換,離散型分部積分

文章目錄 零、引入:分部積分一、Abel 變換1.1 Abel 變換1.2 證明 二、一些比較淺顯的應用2.1 等差 乘 等比型求和2.2 平方求和公式2.3 不等式證明 三、一些算法題的式子優化3.1 3500.將數組分割為子數組的最小代價3.2 D. Array Splitting3.3 300. 任務安排1 零、引入…

火山 RTC 引擎12----合流轉推 集成

一、火山、網易 合流轉推集成 1、 首次先要startPush,要不然,推不了流 void NRTCEngine::PushToCDN(std::string taskID, std::string url) {if (m_video == nullptr) return;bytertc::IMixedStreamConfig* config = getMixedStreamConfig(url);int ret = m_video->star…

基于STM32設計的物聯網疫苗冷鏈物流監測系統

文章目錄 一、前言1.1 項目介紹【1】項目開發背景【2】設計實現的功能【3】項目硬件模塊組成【4】設計意義【5】國內外研究現狀(1)國內研究現狀(2)國外研究現狀(3)技術演進趨勢分析(4)現存技術缺口(5)關鍵案例技術對比表【6】摘要1.2 設計思路1.3 系統功能總結1.4 開…

音頻中采樣率和幀是什么?怎么理解?

視頻中的“幀”是指一張圖片,那么在音頻中,“幀”的含義就完全不同了。理解音頻中的“幀”概念,對做音視頻處理、流媒體開發非常關鍵。 一、聲音是怎么采集的? 音頻采集是指通過麥克風等設備捕捉周圍環境中的聲波,并…

第三方檢測護航軟件登記:企業合規的技術通行證與市場信任基石

一、軟件產品登記測試:合規化的必經之路 根據《軟件產品管理辦法》,所有上市軟件必須通過第三方檢測機構的專業評估,確保功能、性能、安全性等指標符合國家標準(如GB/T 25000系列)。這一強制性要求不僅規避了法律風險…

產品頁不被收錄的6個技術原因(非重復內容/爬蟲限制類)

頁面未被收錄的原因可能藏在代碼架構或服務器配置中 比如爬蟲無法“看懂”你的動態內容,或是某個參數設置錯誤導致頁面被判定為重復。 本文從技術排查角度出發,整理6個最易被忽視但直接影響收錄的實操問題。 頁面加載速度拖慢爬蟲抓取 例如&#xff0…

如何在FastAPI中打造一個既安全又靈活的權限管理系統?

title: 如何在FastAPI中打造一個既安全又靈活的權限管理系統? date: 2025/06/16 08:17:05 updated: 2025/06/16 08:17:05 author: cmdragon excerpt: FastAPI權限系統通過依賴注入實現三級驗證:身份認證、角色驗證和權限校驗。數據庫模型包括用戶、角色和權限注冊表,支持…

通過Radius認證服務器實現飛塔/華為防火墻二次認證:原理、實踐與安全價值解析

引言:數字化轉型中的身份認證挑戰 在數字化轉型加速的今天,企業網絡邊界日益模糊,混合云架構、遠程辦公、物聯網設備接入等場景對網絡安全提出全新挑戰。傳統防火墻基于IP/端口的訪問控制已無法滿足動態安全需求,如何構建"持…

golang--context的使用指南與核心特性

Go 語言 context 包:使用指南與核心特性 一、context 的本質與設計目的 context 是 Go 語言中管理請求生命周期的核心機制,它提供了一套統一的方式來: 傳遞請求范圍數據(如用戶認證信息)控制跨 goroutine 的生命周期…

耗時3小時,把這兩天做好的爬蟲程序,用Python封裝成exe文件

先執行命令如下: pip install pyinstaller py -m PyInstaller --log-levelDEBUG --add-data "config.ini;." nmpa_gui.py很快在dist目錄下就有生成一個nmpa_gui文件夾,運行 nmpa_gui.exe,報錯: 1??初始化爬蟲… 程序…