redis統計各種活躍資料

2021-10-05 00:10:44 字數 845 閱讀 6529

舉個例子:假如乙個字串「z」,他的ascii碼是122,二進位制是 0111 1010,offset 0就是從左往右數的第一位,offset 5就是從左往右數的第6位,這裡執行幾步操作:

首先設定乙個string型別,key是"k",value是"z",,然後設定offset 6 為 0,offset 7 為 1,最後得到的結果就是 "y"。原因就是對字串「z」的二進位製碼中的第6位和第七位重新設定了值,導致最後的結果變成了 0111 1001,這個剛好是字串"y"的二進位製碼,對應的ascii碼是121。

運用這個原理,假如有乙個二進位制是 1010 1010 1010 0101 0101 ,偏移量0的值是1,就表示id為0的使用者已經登入,偏移量是1的值是0,就表示id為1的使用者未登入。這樣就可以實現活躍資料統計了。

key:這裡就是redis的key,根據實際開發中來設定,假如是每天的活躍,則可以 login:2020-4-14

offset:當前字串的偏移量,這裡就直接儲存當前使用者的唯一id(數字),

value:這裡就直接存1或者0,1表示登入了,0表示未登入

模擬幾次使用者登入登出狀態

這裡執行了五步簡單的操作,分別是使用者id為1登入,2登入,3登入,4登入,最後2登出。

redis統計使用者活躍數量

1。說明,redis 位圖儲存節省記憶體,使用者id 156,1333 如果使用者登入,根據日期儲存為1 setbit 20209001 156 1 id為156的使用者在1月1號登入了 setbit 20200901 1333 1 id為1333的使用者在1月1號登入了 setbit 202090...

redis 統計億級活躍使用者

使用位圖法來統計 可以用redis的setbit命令來統計 setbit bitop 1 記錄使用者登陸 每天按日期生成乙個位圖,使用者登陸後,把user id位上的bit值置為1 2 把1周的點陣圖 and 計算,位上為1的,即是連續登陸的使用者 redis 127.0.0.1 6379 setb...

redis 利用setbit實現活躍使用者統計

setbit 的偏移量是從左第0位開始計數 場景 1億個使用者,每個使用者登陸 做任意操作 記為 今天活躍,否則記為不活躍 每週評出 有獎活躍使用者 連續7天活動 每月評,等等.用 位圖法 bit map 利用每個使用者的id號做offset偏移設定為1 log0721 011001.0 log07...