簡單實現Redis緩衝中的排序功能

來源:互聯網
上載者:User

標籤:com   實現   並發   auto   lan   同步   指定   讀取   max   

1.在實現緩衝排序功能之前,必須先明白這一功能的合理性。不妨思考一下,既然可以在資料庫中排序,為什麼還要把排序功能放在緩衝中實現呢?這裡簡單總結了兩個原因:首先,排序會增加資料庫的負載,難以支撐高並發的應用;其次,在緩衝中排序不會遇到表鎖定的問題。Redis恰好提供了排序功能,使我們可以方便地實現緩衝排序。

 

2.

應用Redis實現資料的讀寫,同時利用隊列處理器定時將資料寫入mysql。
3.
在redis啟動時去mysql讀取所有表索引值存入redis中,往redis寫資料時,對redis主鍵自增並進行讀取,若mysql更新失敗,則需要及時清除緩衝及同步redis主鍵。

這樣處理,主要是即時讀寫redis,而mysql資料則通過隊列非同步處理,緩解mysql壓力,不過這種方法應用情境主要基於高並發,而且redis的高可用叢集架構相對更複雜,一般不是很推薦。

4.
Redis配置

作為快取服務器,如果不加以限制記憶體的話,就很有可能出現將整台伺服器記憶體都耗光的情況,可以在redis的設定檔裡面設定:

# 限定最多使用1.5GB記憶體maxmemory 1536mb

如果記憶體到達了指定的上限,還要往redis裡面添加更多的緩衝內容,需要設定清理內容的策略:

# 設定策略為清理最少使用的key對應的資料maxmemory-policy allkeys-lru

簡單實現Redis緩衝中的排序功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.