日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

获取两个数据的交集_Redis学习笔记统计该如何选择数据类型

發布時間:2025/3/17 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取两个数据的交集_Redis学习笔记统计该如何选择数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關注愛因詩賢每天進步一點點導讀

在業務場景中經常需要統計,如某直播累計觀看人數、獨立訪客人數、歷史總觀看人數等等,再比如要統計某學生某月的簽到情況等,遇到統計的情況,就需要思考如何合理地選擇?Redis?數據類型,這篇文章學習一下各種統計的業務場景和分類,這樣就能很容易的對應各種統計需求了。

1.筆記圖

2.Redis 聚合統計

2.1 場景

  • 交集統計:統計多個集合的共有元素

  • 差集統計:統計一個集合相比于另一個集合有車別的元素

  • 并集統計:統計多個集合的所有元素

2.2 舉例

  • 記錄所有登錄過的用戶ID

  • 記錄某天所有登錄過的用戶ID

  • 記錄某天新增的用戶ID:如記錄?1?月?4?日和?1?月?5?日所有用戶?ID,求它們差集合就是新增用戶,求差集命令:

    SDIFFSTORE user_new user_id_20200804 user_id_20200803

    Tips:表示將?user_id_20200804?集合和?user_id?集合求差集,并保存至?user_new?集合中,可表示?20200804?這個日期的新增用戶數。

  • 記錄某天留存下的用戶ID:如記錄?1?月?4?日和?1?月?5?日所有用戶?ID,然后求它們交集就是當日留存用戶,求交集命令:

    SINTERSTORE user_new user_id_20200804 user_id_20200803

    Tips:表示將?user_id_20200804?集合和?user_id?集合求交集,并保存至?user_new?集合中,可表示?20200804?留存的用戶數。

2.3 優化建議

  • Set?的差集、并集和交集的計算復雜度較高,直接執行這些計算,會導致?Redis?實例阻塞

  • 可以從主從集群中選擇一個從庫,讓它專門負責聚合計算,或者是把數據讀取到客戶端,在客戶端來完成聚合統計

3.排序統計舉例

  • 獲取最新評論列表:按評論時間的先后給每條評論設置一個權重值,然后再把評論保存到?Sorted Set?中

    ZRANGEBYSCORE comments N-9 N

4.二值狀態

  • 統計 ID 3000 的用戶在 2020 年 8 月份的簽到情況:

    • 統計?ID 3000?的用戶在?2020?年?8?月份的簽到情況

      SETBIT uid_sign_3000_202008 2 1
    • 檢查該用戶?8?月?3?日是否簽到

      GETBIT uid_sign_3000_202008 2
    • 統計該用戶在?8?月份的簽到次數

      BITCOUNT uid_sign_3000_202008
  • 如果記錄了 1 億個用戶 10 天的簽到情況,你有辦法統計出這 10 天連續簽到的用戶總數嗎?:

    • 把每天的日期作為?key,每個?key?對應一個?1?億位的?Bitmap,每一個?bit?對應一個用戶當天的簽到情況

    • 對?10?個?Bitmap?做??操作,得到的結果也是一個?Bitmap

    • BITCOUNT?統計下?Bitmap?中的?1?的個數,這就是連續簽到?10?天的用戶總數了

5.基數統計舉例

  • 統計某個網頁一天的獨立訪客(UV)HyperLogLog

    • PFCOUNT uv_20180808

    • PFADD uv_20180808 user1 user2 user3 user4 user5

    • 統計結果是有一定誤差的,標準誤算率是?0.81%,但是它非常節省空間

6.各個數據類型統計

關聯文章:Redis學習筆記-String數據類型及其節省空間優化Redis學習筆記-切片集群Redis ClusterRedis學習筆記-哨兵機制&哨兵集群建立過程Redis學習筆記-主從庫如何實現數據同步一致
Redis學習筆記-高性能IO模型&Redis6.0多線程Redis學習筆記-哈希桶和底層數據結構Redis學習筆記-數據類型和操作(動手試試)

總結

以上是生活随笔為你收集整理的获取两个数据的交集_Redis学习笔记统计该如何选择数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。