阿里云網(wǎng)站建設(shè)方案書模板網(wǎng)站搜索引擎優(yōu)化診斷
文章目錄
- 一、Bitmaps:屬性狀態(tài)統(tǒng)計(jì)
- 二、HyperLogLog:基數(shù)統(tǒng)計(jì)
- 三、GEO:地理位置信息計(jì)算
提示:以下是本篇文章正文內(nèi)容,Redis系列學(xué)習(xí)將會(huì)持續(xù)更新
一、Bitmaps:屬性狀態(tài)統(tǒng)計(jì)
Bitmaps類型: 統(tǒng)計(jì)一批數(shù)據(jù)的某個(gè)屬性的某個(gè)狀態(tài)。
統(tǒng)計(jì)全國、各省、各市的共產(chǎn)黨員:
身份id | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
是否黨員 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
以二進(jìn)制方式匯總:1001101
黨員的人數(shù) = 二進(jìn)制數(shù)據(jù)中1的個(gè)數(shù) = 4
Bitmaps類型的基礎(chǔ)操作:
● 設(shè)置指定key對(duì)應(yīng)偏移量上的bit值,value只能是1或0
setbit key offset value
● 獲取指定key對(duì)應(yīng)偏移量上的bit值
getbit key offset
二進(jìn)制數(shù)據(jù):100010011
Bitmaps類型的擴(kuò)展操作:
● 對(duì)指定key按位進(jìn)行交、并、非、異或操作,并將結(jié)果保存到destKey中
bitop op destKey key1 [key2...]and:交or:并not:非xor:異或
● 統(tǒng)計(jì)指定key中1的數(shù)量
bitcount key [start end]
● Tips:redis 應(yīng)用于信息狀態(tài)統(tǒng)計(jì)
回到目錄…
二、HyperLogLog:基數(shù)統(tǒng)計(jì)
HyperLogLog類型: 基數(shù)統(tǒng)計(jì),是數(shù)據(jù)集去重后元素個(gè)數(shù),運(yùn)用了 LogLog 算法。
● 添加數(shù)據(jù)
pfadd key element [element ...]
● 統(tǒng)計(jì)數(shù)據(jù)
pfcount key [key ...]
● 合并數(shù)據(jù)
pfmerge destkey sourcekey [sourcekey...]
● Tips:redis 應(yīng)用于獨(dú)立信息統(tǒng)計(jì)
● 相關(guān)說明:
- 用于進(jìn)行基數(shù)統(tǒng)計(jì),不是集合,不保存數(shù)據(jù),只記錄數(shù)量而不是具體數(shù)據(jù)
- 核心是基數(shù)估算算法,最終數(shù)值存在一定誤差
- 誤差范圍:基數(shù)估計(jì)的結(jié)果是一個(gè)帶有 0.81% 標(biāo)準(zhǔn)錯(cuò)誤的近似值
- 耗空間極小,每個(gè)hyperloglog key占用了12K的內(nèi)存用于標(biāo)記基數(shù)
- pfadd命令不是一次性分配12K內(nèi)存使用,會(huì)隨著基數(shù)的增加內(nèi)存逐漸增大
- Pfmerge命令合并后占用的存儲(chǔ)空間為12K,無論合并之前數(shù)據(jù)量多少
回到目錄…
三、GEO:地理位置信息計(jì)算
GEO類型: 地理位置信息計(jì)算。
3-1 兩點(diǎn)間距離計(jì)算:
● 添加坐標(biāo)點(diǎn)
geoadd key longitude latitude member [longitude latitude member ...]容器 經(jīng)度 維度 坐標(biāo)名稱
● 獲取坐標(biāo)點(diǎn)
geopos key member [member ...]
● 計(jì)算坐標(biāo)點(diǎn)距離
geodist key member1 member2 [unit]距離單位
3-2 范圍內(nèi)獲取數(shù)據(jù):
● 根據(jù)點(diǎn)求范圍內(nèi)數(shù)據(jù)
georadiusbymember key member radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]容器 坐標(biāo)名 范圍半徑 范圍單位
● 根據(jù)坐標(biāo)求范圍內(nèi)數(shù)據(jù)
georadius key longitude latitude radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]
● 獲取指定點(diǎn)對(duì)應(yīng)坐標(biāo)的哈希值
geohash key member [member ...]
例如:
①構(gòu)造田字格
②范圍內(nèi)獲取
回到目錄…
總結(jié):
提示:這里對(duì)文章進(jìn)行總結(jié):
本文是對(duì)Redis的學(xué)習(xí),學(xué)習(xí)了redis的3種高級(jí)數(shù)據(jù)類型:Bitmaps(屬性狀態(tài)統(tǒng)計(jì))、HyperLogLog(基數(shù)統(tǒng)計(jì))、GEO(地理位置信息計(jì)算)。之后的學(xué)習(xí)內(nèi)容將持續(xù)更新!!!