redis特殊資料型別 Hyperloglog

2021-10-09 20:12:31 字數 1118 閱讀 8764

獲取集合中的不重複元素

基數:不重複的元素

a={1,2,3,4,5,6,5},b={1,2,3,4,5},基數的的個數 = 6

​ redis 2.8.9版本就更新出了hyperloglog資料型別,基數統計的演算法,

優點:占用的記憶體是固定的,2^64不同元素的計數,只需要12k的記憶體!從記憶體角度,hyperloglog就是資料型別首選!0.81%的錯誤率

網頁的uv(乙個人訪問乙個**多次,但是還是算作乙個人):傳統方式,set集合儲存使用者id,然後統計set中的用書數量作為標準判斷,這種方式中儲存大量使用者id,記憶體需求量大,不方便,我們的目的是計數,不是儲存使用者id

2.1、pfadd

127.0.0.1:6379> pfadd k1 1 2 3 4 5 6 5 # 新增元素

(integer) 1

127.0.0.1:6379> pfadd k2 1 2 3 4 5

(integer) 1

127.0.0.1:6379> pfadd k3 1 2 3 4 5

(integer) 1

2.2、pfcount
127.0.0.1:6379> pfcount k1 k2 k3 # 統計三個集合中的不重複元素個數

(integer) 6

2.3、pfmerge
127.0.0.1:6379> pfcount k1 k2 k3

(integer) 6

127.0.0.1:6379> keys *

1)"k3"

2)"china:city"

3)"k2"

4)"k1"

127.0.0.1:6379> pfmerge k4 k2 k3 # 將k2 k3的元素合併之後放入到快中

ok127.0.0.1:6379> keys *

1)"china:city"

2)"k1"

3)"k2"

4)"k3"

5)"k4"

127.0.0.1:6379> pfcount k1 k2 k3 k4

(integer) 6

特殊資料型別

1 結構型別 類似於c 中的struct 例如 patient.name xy patient.billing 130.12 patient.test 78 23 34 34 234 234 433 567 patient patient name xy billing 130.1200 test ...

Redis 學習筆記(七)特殊資料型別

在redis的特殊資料型別中選出三種資料型別進行分析 geo只有六個命令 geoadd 經度 緯度 名稱 將指定的地理空間位置 經度 緯度 名稱 新增到指定的key中 例 geoadd china city 116.4 39.9 beijing 121.47 31.23 shanghai geopo...

Redis三種特殊資料型別

這個東西可以推算兩地的位置的資訊,比如說兩地的距離,方圓幾里的人 官方文件只給出了如上六個命令 以上是存入相關城市緯度經度資訊,注意這裡前面是緯度後面是經度,不要弄反了,南極和北極無法直接新增 如果兩個位置之間的其中乙個不存在,那麼命令返回空值。指定單位的引數 unit 必須是以下單位的其中乙個 只...