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

Redis中HyperLogLog的使用小結(jié)

 更新時(shí)間:2025年05月09日 11:22:47   作者:BirdMan98  
Redis 的 HyperLogLog 是一種概率性數(shù)據(jù)結(jié)構(gòu),用于統(tǒng)計(jì)唯一元素的數(shù)量(基數(shù)),本文主要介紹了Redis中HyperLogLog的使用小結(jié),感興趣的可以了解一下

Redis 的 HyperLogLog 是一種概率性數(shù)據(jù)結(jié)構(gòu),用于統(tǒng)計(jì)唯一元素的數(shù)量(基數(shù)),比如你想知道一個(gè)網(wǎng)站有多少獨(dú)立訪問(wèn)用戶(UV)。它的主要優(yōu)點(diǎn)是:內(nèi)存占用極小,無(wú)論你添加多少數(shù)據(jù),它通常只占用 12KB 的內(nèi)存。

下面是 HyperLogLog 的詳細(xì)講解:

?? 一、HyperLogLog 是什么?

HyperLogLog 是一種基數(shù)估計(jì)算法,它可以用來(lái)估算一個(gè)集合中不同元素的數(shù)量(Cardinality)。和 Set 不同,Set 會(huì)存儲(chǔ)所有元素,而 HyperLogLog 并不會(huì)保存具體的數(shù)據(jù),只保存一種統(tǒng)計(jì)狀態(tài)。

? 優(yōu)點(diǎn):可以統(tǒng)計(jì)大規(guī)模唯一元素?cái)?shù)量,內(nèi)存使用極低
? 缺點(diǎn):不是精確統(tǒng)計(jì),有誤差范圍 ±0.81%

??? 二、使用方法

1. 添加數(shù)據(jù)

PFADD key element [element ...]
PFADD myloglog user1 user2 user3

2. 查詢基數(shù)

PFCOUNT key [key ...]
PFCOUNT myloglog

3. 合并多個(gè) HyperLogLog

PFMERGE destkey sourcekey1 [sourcekey2 ...]
PFMERGE totalLog userLog1 userLog2

?? 三、實(shí)際示例

# 添加一些用戶ID
PFADD uv:20250414 user1 user2 user3 user4 user5

# 查詢今天的 UV
PFCOUNT uv:20250414
# 返回 5

# 添加重復(fù)的用戶 ID(不會(huì)重復(fù)計(jì)數(shù))
PFADD uv:20250414 user1 user2

# 再查一次
PFCOUNT uv:20250414
# 仍然是 5

?? 四、原理簡(jiǎn)要(非必須了解)

HyperLogLog 基于概率算法,核心思想是:
哈希每個(gè)元素,觀察哈希值的前綴中連續(xù)0的最大長(zhǎng)度,利用這個(gè)統(tǒng)計(jì)信息估算基數(shù)。

  • 哈希函數(shù)讓輸入隨機(jī)分布
  • 長(zhǎng)連續(xù) 0 出現(xiàn)的概率很低,說(shuō)明數(shù)據(jù)多
  • Redis 將結(jié)果分散到 2^14(16,384)個(gè)桶中,提高精度

?? 五、適用場(chǎng)景

  • 網(wǎng)站 UV 統(tǒng)計(jì)(每天、每小時(shí)用戶訪問(wèn)數(shù))
  • 活躍用戶數(shù)統(tǒng)計(jì)
  • 數(shù)據(jù)去重統(tǒng)計(jì)但不需要精確結(jié)果的場(chǎng)合

?? 六、注意事項(xiàng)

  • 無(wú)法獲取添加了哪些元素(它不存數(shù)據(jù))
  • 是估算值(不是精確值),精度誤差為 ±0.81%
  • 永遠(yuǎn)只占用約 12KB 的內(nèi)存(精確控制內(nèi)存使用)

?? 七、與 Set 對(duì)比

項(xiàng)目SetHyperLogLog
精度精確估算(±0.81%)
內(nèi)存隨數(shù)據(jù)增大恒定約 12KB
支持去重計(jì)數(shù)??(基于概率)
支持元素查看??(不存數(shù)據(jù))
使用場(chǎng)景數(shù)據(jù)可控小集合超大規(guī)模數(shù)據(jù)統(tǒng)計(jì)

如果你有具體的使用場(chǎng)景或代碼需求,也可以告訴我,我可以幫你寫具體的 Redis 命令或 Python/Lua 示例。需要嗎?

到此這篇關(guān)于Redis中HyperLogLog的使用小結(jié)的文章就介紹到這了,更多相關(guān)Redis HyperLogLog使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • k8s部署redis哨兵的實(shí)現(xiàn)

    k8s部署redis哨兵的實(shí)現(xiàn)

    本文主要介紹了k8s部署redis哨兵的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Redis中List類型的常用命令

    Redis中List類型的常用命令

    本文主要介紹了Redis中List類型的常用命令,包含12種常用命令,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • 詳解Redis中的簡(jiǎn)單動(dòng)態(tài)字符串和C字符串的區(qū)別

    詳解Redis中的簡(jiǎn)單動(dòng)態(tài)字符串和C字符串的區(qū)別

    簡(jiǎn)單動(dòng)態(tài)字符串(SDS)和?C?字符串在實(shí)現(xiàn)和特性上存在一些區(qū)別,這些區(qū)別使得?SDS?更適合作為?Redis?中字符串對(duì)象的內(nèi)部表示,本文給大家介紹一下Redis中的簡(jiǎn)單動(dòng)態(tài)字符串和C字符串的區(qū)別,需要的朋友可以參考下
    2023-12-12
  • redis內(nèi)存空間效率問(wèn)題的深入探究

    redis內(nèi)存空間效率問(wèn)題的深入探究

    redis緩存固然高效,可是它會(huì)占用我們系統(tǒng)中寶貴的內(nèi)存資源,那該如何解決呢?這篇文章主要給大家介紹了關(guān)于redis內(nèi)存空間效率問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • 解析redis hash應(yīng)用場(chǎng)景和常用命令

    解析redis hash應(yīng)用場(chǎng)景和常用命令

    這篇文章主要介紹了redis hash應(yīng)用場(chǎng)景和常用命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Redis中Scan命令的踩坑實(shí)錄

    Redis中Scan命令的踩坑實(shí)錄

    這篇文章主要給大家介紹了關(guān)于Redis中Scan命令踩坑的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于Redis的主從復(fù)制及哨兵問(wèn)題

    關(guān)于Redis的主從復(fù)制及哨兵問(wèn)題

    redis中以master為主機(jī),slave為從機(jī),一個(gè)master可以對(duì)應(yīng)多個(gè)slave,而一個(gè)slave只能對(duì)應(yīng)一個(gè)master,這篇文章主要介紹了Redis的主從復(fù)制及哨兵,需要的朋友可以參考下
    2022-06-06
  • Redis keys命令的具體使用

    Redis keys命令的具體使用

    本文主要介紹了Redis keys命令的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • redistemplate下opsForHash操作示例

    redistemplate下opsForHash操作示例

    這篇文章主要為大家介紹了redistemplate下opsForHash操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • redis做websocket分布式消息推送服務(wù)的實(shí)現(xiàn)

    redis做websocket分布式消息推送服務(wù)的實(shí)現(xiàn)

    本文介紹了使用Redis作為消息隊(duì)列實(shí)現(xiàn)WebSocket分布式消息推送服務(wù)的方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12

最新評(píng)論