Bitmaps基本操作
- 設定指定key對應偏移量上的bit值,隻能是0或1
setbit key offset value
# 可以認為key這個空間是一個連續的全部是0的字元串,
# setbit操作在對應位置設定為0或1
- 擷取指定key對應偏移量上的值
getbit key offset
Bitmaps擴充操作
- 統計指定key中1的數量
- 對指定key按位進行交、并、非、異或操作,并将結果儲存在destKey中
bitop op destKey key1 key2 ...
# op可是:and or not xor
HyperLogLog
用于基數統計,用了LogLog算法
基數:一組資料中不重複的資料的總數
基本操作
- 添加資料
pfadd key element1 element2 ...
- 統計資料
pfcount key1 key2 ...
- 合并資料
pfmerge destKey sourseKey1 sourceKey2 ...
相關說明:
- HyperLogLog用于基數統計,不是集合不儲存資料,隻記錄數量而不記錄具體資料
- 核心是基數估算算法,最終數值存在一定誤差
- 誤差範圍:基數估計的結果是一個帶有0.81%标準錯誤的近似值
- 消耗空間很小,每個hyperlogog key占用了12K的記憶體用來标記基數
- pfadd指令不是一次性配置設定12K的記憶體,會随着基數的增加記憶體逐漸增大
- pfmerge合并後占用的存儲空間為12K,無論合并之前的資料量是多少
GEO基本操作
- 添加坐标點
geoadd key 經度1 緯度1 member1 經度2 緯度2 member2 ...
# 這裡的key相當與存放很多個坐标點的容器,不同容器之間不能互相通路
# member是該坐标點的名稱
# 經度緯度與現實中地圖上的經緯度一一對應
- 擷取坐标點
geopos key member
# 傳回結果是度分秒的形式顯示的
- 計算兩點距離
geodist key member1 member2 [m/km]
# 預設顯示距離為米
# 該計算值即為現實中兩點之間的直線距離
- 一堆點中求在給定點半徑為radius的範圍内的點
georadius key 經度 次元 radius m|km|ft|mi [withcoord] [withdist] [ASC|DESC]
# keys: 一堆點的容器名
# radius:半徑,機關可選m|km|ft|mi
# withcoord:将點的坐标也顯示出來
# withdist:将距離顯示出來
# 給定點的坐标随意,不一定是key中已經有的點
- 點範圍内的點數,給定點是在key中已經包含的點