當(dāng)前位置:
首頁 >
【Redis】14.Redis高级数据类型Bitmaps、HyperLogLog、GEO
發(fā)布時間:2024/4/15
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【Redis】14.Redis高级数据类型Bitmaps、HyperLogLog、GEO
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【Redis】14.Redis高級數(shù)據(jù)類型Bitmaps、HyperLogLog、GEO
Bitmaps:用比特位進行快速的狀態(tài)統(tǒng)計
Bitmaps基本操作
Bitmaps不是一個新的數(shù)據(jù)類型,而是string中二進制位的操作接口。之前是以string的整體操作數(shù)據(jù),現(xiàn)在是用string中二進制的比特位來存儲。Bitmaps類型的擴展操作
業(yè)務(wù)場景 電影網(wǎng)站
- 統(tǒng)計每天某一部電影是否被點播
- 統(tǒng)計每天有多少部電影被點播
- 統(tǒng)計每周/月/年有多少部電影被點播
- 統(tǒng)計年度哪部電影沒有被點播
業(yè)務(wù)分析
- 對指定key按位進行交、并、非、異或操作,并將結(jié)果保存到destKey中
bitop op destKey key1 [key2…]
and or not xor
- 統(tǒng)計指定key中1的數(shù)量
bitcount key [start end]
HyperLogLog:作基數(shù)統(tǒng)計
統(tǒng)計獨立UV:統(tǒng)計不重復(fù)的數(shù)據(jù)數(shù)量
- 原始方案 set
存儲每個用戶的id(字符串) - 改進方案:Bitmaps
存儲每個用戶狀態(tài)(bit) - 全新的方案:Hyperloglog
基數(shù)統(tǒng)計
基數(shù)
- 基數(shù)是數(shù)據(jù)集去重后元素的個數(shù)
- HyoerLogLog是用來做計數(shù)統(tǒng)計的,運用了LogLog的算法
HyperLogLog類型的基本操作
- 添加數(shù)據(jù)
pfadd key element [element …]
- 統(tǒng)計數(shù)據(jù)
pfcount key [key …]
- 合并數(shù)據(jù)
pfmerge destkey sourcekey [sourcekey …]
相關(guān)說明
- 用于進行計數(shù)統(tǒng)計,不是集合,不保存數(shù)據(jù),值記錄數(shù)量而不是具體數(shù)據(jù)
- 核心是計數(shù)估算算法,最終數(shù)值存在一定誤差
- 誤差范圍:計數(shù)估計的數(shù)據(jù)是一個帶有0.81%標(biāo)準(zhǔn)錯誤的近似值
- 耗空間極小,每個hyperloglog key占用了12k的內(nèi)存用于標(biāo)記基數(shù)
- pfadd命令不是一次性分配12k內(nèi)存使用,會隨著基數(shù)的增加內(nèi)存逐漸增大
- Pfmerge命令合并后占用的內(nèi)存空間為12k,無論合并之前數(shù)據(jù)量多少
GEO:作地理位置信息計算
GEO類型的基本操作
- 添加坐標(biāo)點
geoadd key longitude latitude member [longitude latitude member]
- 獲取坐標(biāo)點
geopos key member[member …]
- 計算坐標(biāo)點距離
geodist key member1 member2 [unit]
總結(jié)
以上是生活随笔為你收集整理的【Redis】14.Redis高级数据类型Bitmaps、HyperLogLog、GEO的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Redis】13.Redis服务器配置
- 下一篇: 【Redis】15.Redis主从复制