redis使用場景之list(二)---微信朋友圈點贊、日誌消息隊列

由於list自身的一些特性,所以我們可以將其應用於具有操作先後順序的數據控制,比如微信朋友圈點贊,要求按點贊順序顯示好友信息。也可應用於最新消息的展示,下面我們就針對這它的特性分析一下它的使用場景。

業務場景

微信朋友圈點贊,要求按照點贊順序顯示點贊好友信息,還有需要滿足中間的某個人取消了點贊,我們要能將其剔除

解決方案

list自帶移除指定數據操作

lrem key count value

業務場景

Twitter、新浪微博、騰訊微博中個人用戶的關注列表需要按照用戶的關注順序進行展示,粉絲列表需要降最近關注的粉絲列在前面

新聞、資訊類網站如何將最新的新聞或資訊按照發生的時間順序顯示?

企業運營過程中,系統將產生出大量的運營數據,如何保障多臺服務器操作日誌的統一順序輸出?

解決方案

  1. 依賴list的數據具有順序的特徵對信息進行管理
  2. 使用隊列模型解決多路信息彙總合併的問題
  3. 使用棧模型解決最新消息的問題

比如使用隊列模型解決多路信息彙總合併的問題,現在越來越流行分佈式服務架構,日誌系統無疑是排查系統問題的關鍵所在。那麼我們如何解決多臺機器日誌統一的問題,比如有4臺機器,一會存在A機器,一會存在B機器,分別拿到每臺機器上的日誌,4份日誌一個一個對照時間,我想這會很麻煩。當然現在有很多分佈式日誌的框架,我們今天使用輕量級的redis來解決。思路:無論哪臺機器在插入日誌的時候我們都調用redis中的list模型進行插入,然後在取的時候都是按照插入的順序進行顯示,這樣就很容易將多臺信息彙總到一臺機器上,從而完成了多路信息彙總合併的問題。

List類型數據操作注意事項

  1. List中保存的數據都是string類型的,數據總容量是有限的,最多2^32-1個元素(4294967295)
  2. List具有索引的概念,但是操作數據時通常以隊列的形式進行入隊出隊操作,或以棧的形式進行入棧出棧操作
  3. 獲取全部數據操作結束索引設置爲-1
  4. List可以對數據進行分頁操作,通常第一頁的信息來自於list,第二頁及更多的信息通過數據庫的形式加載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章