欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Redis中怎么用setbit統(tǒng)計(jì)活躍用戶-創(chuàng)新互聯(lián)

這篇文章主要講解了“Redis中怎么用setbit統(tǒng)計(jì)活躍用戶”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Redis中怎么用setbit統(tǒng)計(jì)活躍用戶”吧!

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鄭州免費(fèi)建站歡迎大家使用!

一、需求背景

首先,我們來看一下需求:網(wǎng)站統(tǒng)計(jì)用戶登錄的次數(shù),具體如下:

  • 網(wǎng)站有1億個(gè)用戶,有經(jīng)常登錄的,也有不經(jīng)常登錄的

  • 如何來記錄用戶的登錄信息

  • 如何查詢活躍用戶:比如:一周內(nèi),登錄3次的

二、使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫

我們使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(比如:Oracle)來存儲(chǔ)這樣的數(shù)據(jù)

 每周產(chǎn)生7億條數(shù)據(jù),對(duì)于任何一個(gè)關(guān)系型數(shù)據(jù)庫來說,都是非常不好維護(hù)的,對(duì)性能也會(huì)有很大的影響。

三、使用Redis的setbit操作

Redis支持對(duì)String類型的value進(jìn)行基于二進(jìn)制位的置位操作。通過將一個(gè)用戶的id對(duì)應(yīng)value上的一位,通過對(duì)活躍用戶對(duì)應(yīng)的位進(jìn)行置位,就能夠用一個(gè)value記錄所有活躍用戶的信息。如下圖所未,下圖中的bitmap有9個(gè)位被置為1,表示這9個(gè)位上對(duì)應(yīng)的用戶是今天的活躍用戶。其中第15位表示uid為15的用戶,第一位表示uid為0的用戶。(如果你的uid不是從1開始的,比如從100000開始,實(shí)際上你也可以相應(yīng)的用uid減去初始值來表示其位數(shù),比如1000000用戶對(duì)應(yīng)到bitmap的第一位)

Redis中怎么用setbit統(tǒng)計(jì)活躍用戶

具體的代碼類似下面這樣:

redis.setbit(key, user_id, 1)

這樣一次記錄的復(fù)雜度是O(1),在Redis中速度非常快。

下面代碼是在Redis CLI中執(zhí)行的Demo演示,比如:用戶ID為100的用戶在星期一登錄了網(wǎng)站,我們就通過setbit操作,把星期一對(duì)應(yīng)的100位的值置為1,

127.0.0.1:6379> setbit monday 100 1(integer) 0

而我們通過每天換用一個(gè)不同的key來將每天的活躍用戶狀態(tài)記錄分開存。并且可以通過一些與或運(yùn)算計(jì)算出N天活躍用戶,和連接N天活躍用戶這樣的統(tǒng)計(jì)數(shù)據(jù)。

如下圖,第一行表示星期一的活躍用戶情況,第二行表示周二的,以此類推。為樣我們通過對(duì)N天的活躍用戶記錄取并集操作,就能得出在N天內(nèi)活躍過的用戶列表。

感謝各位的閱讀,以上就是“Redis中怎么用setbit統(tǒng)計(jì)活躍用戶”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Redis中怎么用setbit統(tǒng)計(jì)活躍用戶這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站標(biāo)題:Redis中怎么用setbit統(tǒng)計(jì)活躍用戶-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://chinadenli.net/article36/didosg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航外貿(mào)建站外貿(mào)網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)公司域名注冊(cè)網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化