您好,登錄后才能下訂單哦!
本篇內容介紹了“Redis中GETBIT和SETBIT的詳細介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Redis是in-memery的數據庫,其優勢不言而喻。
詳細可以閱讀一下官網的介紹。https://redis.io
其主要有五種數據類型:strings,lists,sets,hashes。
在學習到strings類型的常見命令的時候,對GETBIT
和SETBIT
的意義并不是非常了解,所以就搜索了一下相關文章。看到一篇介紹GETBIT
和SETBIT
的應用的文章,感覺非常強大,記錄如下:
我們在登陸某些博客網站或者視頻網站的時候,網站往往會記錄我們是否閱讀了某篇文章,或者是觀看了某個視頻。
如果用傳統的mysql數據庫實現,如果用戶數量多,文章和視頻也多的情況下,那么則會給數據庫帶來很大的壓力。
而用Redis的GETBIT和SETBIT則會簡單得多。
我們以視頻為例,我們用bitmap來記錄用戶們是否已經觀看了某一個視頻,一個視頻對應一個bitmap。例如
key: video:1201 value: 000000...0000
key以視頻英文名video+冒號+id標記。
value就是一個bitmap。一位(bit)有兩種可能,0或者1。0代表未看,1代表已經看過了。
而位置(offset)代表的就是user id。例如第200位就代表user_id為200的用戶是否觀看過id為1201的視頻。
# SETBIT key offset value SETBIT video:1201 200 1 # 上面的命令就是設置ID為200的用戶,已經看過了ID為1201的視頻。
# GETBIT key offset GETBIT video:1201 200 # 上面的命令就是查詢ID為200的用戶是否觀看了ID為1201的視頻
當然您也可以一個用戶對應一個bitmap,bitmap中的位代表一個視頻是否已經被觀看。
另外文章中也將到目前非常流行的打卡或者是登陸記錄也可以用相似的設計實現。
例如用一個bitmap記錄所有用戶的登陸情況,bitmap中的一位代表一個用戶當天是否有登陸,0代表沒登陸,1代表有登陸。
每天生成一個bitmap。
通過統計多天bitmap就可以實現統計活躍用戶之類的操作了。
“Redis中GETBIT和SETBIT的詳細介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。