一、Bitmaps
Bitmaps類型的基礎操作
- 擷取指定key對應偏移量上的bit值
getbit key offset
- 設定指定key對應偏移量上的bit值,value隻能是1或0
setbit key offset value
Bitmaps類型的擴充操作
- 對指定key按位進行交、并、非、異或操作,并将結果儲存到deskey中
bitop op destKey key1 [key2...]
and:交;or:并;not:非;xor:異或
- 統計指定key中1的數量
bitcount key [start end]
應用場景tips:redis應用于資訊狀态統計
二、HyperLogLog
統計不重複資料的數量
基本操作:
- 添加資料:
pfadd key element [element ...]
- 統計資料:
pfcount key [key ...]
- 合并資料:
pfmerge destkey sourcekey [sourcekey...]
應用場景tips: redis應用于獨立資訊統計
相關說明:
- 用于進行基數統計,不是集合,不儲存資料,隻記錄數量而不是具體資料
- 核心是基數估算算法,最終數值存在一定誤差
- 誤差範圍:基數估計的結果是一個帶有0.81% 标準錯誤的近似值
- 耗空間極小,每個hyperloglogkey占用了12K的記憶體用于标記基數
- pfadd指令不是一次性配置設定12K記憶體使用,會随着基數的增加記憶體逐漸增大
- Pfmerge指令合并後占用的存儲空間為12K,無論合并之前資料量多少
三、GEO
基本操作:
- 添加坐标點
geoaddkey longitude latitude member [longitude latitude member ...]
- 擷取坐标點
geoposkey member [member ...]
- 計算坐标點距離
geodistkey member1 member2 [unit]
- 添加坐标點
georadiuskey longitude latitude radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]
- 擷取坐标點
georadiusbymemberkey member radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]
- 計算經緯度
geohashkey member [member ...]
應用場景tips: redis應用于地理位置計算