五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Redis中的bitmap詳解

發(fā)布日期:2022-01-29 17:06 | 文章來源:源碼中國

1、什么是bitmap?

bitmap也叫位圖,也就是用一個bit位來表示一個東西的狀態(tài),我們都知道bit位是二進(jìn)制,所以只有兩種狀態(tài),0和1。

2、為什么要有bitmap?

bitmap的出現(xiàn)就是為了大數(shù)據(jù)量而來的,但是前提是統(tǒng)計(jì)的這個大數(shù)據(jù)量每個的狀態(tài)只能有兩種,因?yàn)槊恳粋€bit位只能表示兩種狀態(tài)。
下面我們直接以一個統(tǒng)計(jì)億級用戶活動的狀態(tài)來說明吧。

3、案例說明

3.1、案例描述

如果有一個上億用戶的系統(tǒng),需要我們?nèi)ソy(tǒng)計(jì)每一天的用戶登錄情況,我們應(yīng)該如何去解決?
前提條件:設(shè)置在9月19號有下標(biāo)為100、101、102、103四個用戶都登錄了系統(tǒng)
設(shè)置在9月20號有下標(biāo)為100、101、102三個用戶都登錄了系統(tǒng)
提出問題:
1、取出9月19號登錄系統(tǒng)的有多少人?
答:直接獲取即可。
2、取出9月19號和9月20號連續(xù)登錄系統(tǒng)的有多少人?
答:兩天的數(shù)據(jù)取&運(yùn)算。
3、取出9月19號與9月20號任意一天登錄的有多少人?
答:兩天的數(shù)據(jù)取|運(yùn)算。

3.2、解決方案

3.2.1、解決方案1—使用傳統(tǒng)數(shù)據(jù)庫解決

如果我們需要使用傳統(tǒng)的數(shù)據(jù)庫去統(tǒng)計(jì)的話,我么需要創(chuàng)建一張表,然后某個用戶登錄了,我們就去在表里面插上一條記錄,登記用戶的id,用戶登錄的時(shí)間等等,但是這樣出現(xiàn)的問題就是,每一天的數(shù)據(jù)量都很大,我們在統(tǒng)計(jì)日活時(shí),效率就很低,所以這種解決方案是不能被考慮的。

3.2.2、解決方案2—使用bitmap解決

既然用戶登錄只有兩種狀態(tài),那么,我們就可以用bitmap
比如0表示未登錄,1表示登錄

// 設(shè)置在9月19號有下標(biāo)為100、101、102、103四個用戶都登錄了系統(tǒng) start
127.0.0.1:6379> setbit login_09_19 100 1
(integer) 0
127.0.0.1:6379> setbit login_09_19 101 1
(integer) 0
127.0.0.1:6379> setbit login_09_19 102 1
(integer) 0
127.0.0.1:6379> setbit login_09_19 103 1
(integer) 0
// 設(shè)置在9月19號有下標(biāo)為100、101、102、103四個用戶都登錄了系統(tǒng) end
// 設(shè)置在9月20號有下標(biāo)為100、101、102三個用戶都登錄了系統(tǒng) start
127.0.0.1:6379> setbit login_09_20 100 1
(integer) 0
127.0.0.1:6379> setbit login_09_20 101 1
(integer) 0
127.0.0.1:6379> setbit login_09_20 102 1
(integer) 0
// 設(shè)置在9月20號有下標(biāo)為100、101、102三個用戶都登錄了系統(tǒng) end
// 取出9月19號登錄系統(tǒng)的有多少人? start
127.0.0.1:6379> bitcount login_09_19
(integer) 4
// 取出9月19號登錄系統(tǒng)的有多少人? end
// 取出9月19號和9月20號連續(xù)登錄系統(tǒng)的有多少人?start
127.0.0.1:6379> bitop and login_in_09_19_20:and login_09_19 login_09_20
(integer) 13
127.0.0.1:6379> bitcount login_in_09_19_20:and
(integer) 3
// 取出9月19號和9月20號連續(xù)登錄系統(tǒng)的有多少人?end
// 取出9月19號與9月20號任意一天登錄的有多少人?start
127.0.0.1:6379> bitop or login_in_09_19_20:or login_09_19 login_09_20
(integer) 13
127.0.0.1:6379> bitcount login_in_09_19_20:or
(integer) 4
// 取出9月19號與9月20號任意一天登錄的有多少人?end

到此這篇關(guān)于Redis中的bitmap詳解的文章就介紹到這了,更多相關(guān)Redis中的bitmap內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

美國服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部