Redis學習筆記(一)

傳統Web項目:

             可能存在性能問題。數據庫持久化數據主要是面向磁盤,磁盤的讀/寫比較慢,在一般管理系統沒有問題。

互聯網項目:

              高併發,存在瞬間讀/寫大量數據的要求,如商品搶購、秒殺,一瞬間成千上萬的請求,需在極短的時間內完成成千上萬的讀、寫操作,易造成數據庫系統癱瘓,導致服務宕機的嚴重生產問題。

              應用場景:      一、緩存常用的數據;           二、需要高速讀、寫的場合

Redis技術:

              基於內存的數據庫,並提供一定的持久化功能。

         性能優越:支持每秒十幾萬次的讀、寫操作;

                           支持集羣、分佈式、主從同步等配置,原則上可以無限擴展;

                           支持一定的事務能力,在高併發訪問下保證數據安全和一致性特別有用;

        性能優越來至於3個方面:

                      1、基於ANSI C語言編寫,接近於彙編語言的機器語言,運行快速;

                      2、基於內存的讀、寫,自然比數據庫磁盤讀寫快得多

                      3、只有6種數據類型,數據結構簡單,規則較少,而數據庫則是範式、完整性、規範性考慮的規則多,處理業務會比較複雜。

 

應用:

        一、緩存

對數據庫的讀、寫操作,一般是9:1~7:3,讀操作遠遠多於寫操作。

內存相對磁盤要貴的多。存儲信息,需從3個方面考慮

  1. 業務數據常用嗎?命中率如何?如果命中率很低,就沒有必要寫入緩存
  2. 該業務數據是讀操作多,還是寫操作多,如果寫操作多,需要頻繁寫入數據庫,也沒有必要使用緩存
  3. 業務數據大小如何?如果要存儲幾百兆字節的文件 ,會給緩存帶來很大的壓力,有沒有必要?

        二、高速讀、寫場合

商品秒殺、搶紅包、淘寶、京東的雙十一活動,瞬間成千上萬的請求到達服務器。

        考慮異步寫入數據庫,高速讀、寫場合中單單使用Redis去應對,把這些需要高速讀、寫的數據,緩存到Redis,而在滿足一定的條件下,觸發這些緩存的數據寫入數據庫中。(秒殺商品爲0,搶紅包金額爲0,觸發事件將Redis緩存的數據以批量的形式一次性寫入數據庫,從而完成持久化工作)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章