除了用作快取資料,Redis還可以做這些

來源:互聯網
上載者:User
                                     除了用作快取資料,Redis還可以做這些

Redis應該說是目前最受歡迎的NoSQL資料庫之一了。Redis通常被作為緩衝組件,用作快取資料。不過,除了可以快取資料,其實Redis可以做的事還有很多。下面列舉幾例,供大家參考。 1、最新列表

例如新聞列表頁面最新的新聞列表,如果總數量很大的情況下,盡量不要使用select a from A limit 10,嘗試redis的 LPUSH命令構建List,一個個順序都塞進去就可以啦。不過萬一記憶體清掉了咋辦。也簡單,查詢不到儲存key的話,用mysql查詢並且初始化一個List到redis中就好了。 2、熱門排行榜應用

實現這個功能主要用到的redis資料類型是redis的有序集合zset。zset 是set 類型的一個擴充,比原有的類型多了一個順序屬性,此屬性在每次插入資料時會自動調整順序值,保證value值按照一定順序連續排列。

我們假設是一個遊戲經驗值熱門排行榜,那主要的實現思路是:

1、在一個新的玩家參與到遊戲中時,在redis中的zset中新增一條記錄(記錄內容看具體的需求)score為0

2、當玩家的經驗值發生變化時,修改該玩家的score值

3、使用redis的ZREVRANGE方法擷取熱門排行榜 3、計數器應用

Redis的命令都是原子性的,你可以輕鬆地利用INCR、DECR命令進行原子性操作,來構建計數系統。由於單線程,可以避免並發問題,保證不會出錯,而且100%毫秒級效能。

比如在一個 web 應用程式中,如果想知道使用者在一年中每天的點擊量,那麼只要將使用者識別碼 以及相關的日期資訊作為鍵,並在每次使用者點擊頁面時,執行一次自增操作即可。 4、資料排重

Redis set是可以自動排重的,當你需要儲存一個列表資料,又不希望出現重複資料時,set是一個很好的選擇,並且set提供了判斷某個成員是否在一個set集合內的重要介面。

實現方案:

set 的內部實現是一個 value永遠為null的HashMap,實際就是通過計算hash的方式來快速排重的,這也是set能提供判斷一個成員是否在集合內的原因。 5、即時的反垃圾系統

反垃圾系統通常都是基於關鍵詞的,使用Redis儲存關係詞,能夠利用Redis的高效能,為監控系統提供穩定及精確的即時監控功能,典型的案例如,郵件系統、評論系統等。 6、發行就緒、訂閱的即時訊息系統

Redis中Pub/Sub系統可以構建即時的訊息系統,比如,很多使用Pub/Sub構建的即時聊天應用。

設計思路:

服務端發送訊息(含標題,內容),標題按照一定規則存入redis,同時標題(以最少的資訊量)推送到用戶端,客戶點擊標題時,擷取相應的內容閱讀.

如果未讀取,可以提示多少條未讀,redis能夠很快記數

根據一定時間清理緩衝

技術實現:

需要redis資料庫,用戶端websocket,伺服器端websocket 7、隊列應用

隊列在現在程式中應用十分廣泛,比如日誌推送、任務處理等等。以往通常使用http sqs實現隊列,其實,使用redis的list類型,也可以實現隊列。

樣本如下:


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.