Redis篇 - 3. 發佈訂閱、geo、bitmap、hyperloglog

一、發佈訂閱
  1. 簡介git

    1. 發佈訂閱相似於廣播功能。redis發佈訂閱包括 發佈者、訂閱者、Channel
  2. 命令
命令 做用 時間複雜度
subscribe channel 訂閱一個頻道 O(n)
unsubscribe channel ... 退訂一個/多個頻道 O(n)
publish channel msg 將信息發送到指定的頻道 O(n+m),n 是頻道 channel 的訂閱者數量, M 是使用模式訂閱(subscribed patterns)的客戶端的數量
pubsub CHANNELS 查看訂閱與發佈系統狀態(多種子模式) O(n)
psubscribe 訂閱多個頻道 O(n)
unsubscribe 退訂多個頻道 O(n)
二、geo
  1. 簡介redis

    1. geo是地理空間位置。redis支持將geo信息存儲到有序集合中,再經過geohash算法進行填充
  2. 命令
命令 做用
geoadd key latitude longitude member 添加成員位置(緯度、經度、名稱)到key中
geopos key member ... 獲取成員geo座標
geodist key member1 member2 計算成員位置間距離
georadius 基於經緯度座標範圍查詢
georadiusbymember 基於成員位置範圍查詢
geohash 計算經緯度hash
三、bitmap
  1. 簡介算法

    1. bitmap是一串連續的2進制數字(0或1),每一位所在的位置爲偏移(offset),在bitmap上可執行AND, OR, XOR以及其它位操做
  2. 命令
命令 做用 時間複雜度
setbit key offset val 給指定key的值的第offset賦值val O(1)
getbit key offset 獲取指定key的第offset位 O(1)
bitcount key start end 返回指定key中[start,end]中爲1的數量 O(n)
bitop operation destkey key 對不一樣的二進制存儲數據進行位運算(AND、OR、NOT、XOR) O(n)
四、hyperloglog
  1. 簡介微信

    1. hyperloglog可用極小空間完成獨立數統計
  2. 命令
命令 做用
pfadd key element ... 將全部元素添加到key中
pfcount key 統計key的估算值(不精確)
pgmerge new_key key1 key2 ... 合併key至新key

PS: 更多文章請關注微信公衆號:浮話element

相關文章
相關標籤/搜索