Bitmaps
Bit基本操作
Bitmaps類型的擴充操作
業務場景 電影網站
- 統計每天某一部電影是否被點播
- 統計每天有多少部電影被點播
- 統計每周/月/年有多少部電影被點播
- 統計年度哪部電影沒有被點播
業務分析
- 對指定key按位進行交、并、非、異或操作,并将結果儲存到destKey中
bitop op destKey key1 [key2…]
and or not xor
- 統計指定key中1的數量
bitcount key [start end]
HyperLogLog
統計獨立UV
-
原始方案 set
存儲每個使用者的id(字元串)
-
改進方案:Bitmaps
存儲每個使用者狀态(bit)
-
全新的方案:Hyperloglog
基數統計
基數
- 基數是資料集去重後元素的個數
- HyoerLogLog是用來做計數統計的,運用了LogLog的算法
HyperLogLog類型的基本操作
- 添加資料
pfadd key element [element …]
- 統計資料
pfcount key [key …]
- 合并資料
pfmerge destkey sourcekey [sourcekey …]
相關說明
- 用于進行計數統計,不是集合,不儲存資料,值記錄數量而不是具體資料
- 核心是計數估算算法,最終數值存在一定誤差
- 誤差範圍:計數估計的資料是一個帶有0.81%标準錯誤的近似值
- 耗空間極小,每個hyperloglog key占用了12k的記憶體用于标記基數
- pfadd指令不是一次性配置設定12k記憶體使用,會随着基數的增加記憶體逐漸增大
- Pfmerge指令合并後占用的記憶體空間為12k,無論合并之前
- 資料量多少
如果允許容錯,那麼一定可以使用Hyperloglog,如果不允許容錯,就使用set或者自己的資料類型即可。
GEO
GEO類型的基 本操作
geospatial地理位置,這個功能可以推算地理位置的資訊,兩地之間的距離,方圓幾裡的人!
- 添加坐标點(地理位置)
geoadd key longitude[經度] latitude[緯度] member[名字] [longitude latitude member]
- 擷取坐标點
geopos key member[member …]
- 計算坐标點距離
geodist key member1 member2 [unit]
- 根據坐标求範圍内的資料