日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

什么是缓存?为什么要使用Redis?

發布時間:2024/4/11 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是缓存?为什么要使用Redis? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 什么是緩存?
    • 緩存 VS 數據庫
  • 本地緩存 VS 分布式緩存
    • 本地緩存
    • 分布式緩存
  • Memcached VS Redis


什么是緩存?

緩存是?個高速數據交換的存儲器,使用它可以快速的訪問和操作數據。

舉個通俗的例子。
小明經營著一家飯店,在剛開張的時候由于名氣不足,客源少,生意并不是很忙,平時沒事的時候就閑著,有客人來了再進廚房安排做菜。隨著飯店的日益發展,此時的飯店已經不同往日,有著大量的穩定客源,并且在某些節假日的時候甚至爆滿。按照以前的做法,那肯定是行不通了,在用餐高峰期的時候因為備餐慢導致了客戶的長時間等待,使得飯店的屢遭投訴。
為解決這一問題,小明想到了一個辦法,可以在空閑的時候,提前將熱門的菜做完后放入保溫柜,等用餐高峰期時再拿出來加熱后就可以直接上菜,就規避了短時間內大量客源而導致的備餐慢的問題,通過這一方法,即使在高峰期,也能很好的應對。

這就是緩存的本質,將熱點資源(高頻讀、低頻寫)提前放入離用戶最近、訪問速度更快的地方,以提高訪問速度。


緩存 VS 數據庫

相比于數據庫而言,緩存的操作性能更高

  • 緩存?般都是通過 key-value 查詢數據,因為不像數據庫?樣還有查詢的條件等因素,所以查詢的性能?般會比數據庫高;
  • 緩存的數據是存儲在內存中的,而數據庫的數據是存儲在磁盤中的,因為內存的操作性能遠遠大于磁盤,因此緩存的查詢效率會高很多;
  • 緩存更容易做分布式部署(當?臺服務器變成多臺相連的服務器集群),而數據庫?般比較難實現分布式部署,因此緩存的負載和性能更容易平行擴展和增加。

  • 本地緩存 VS 分布式緩存

    根據緩存是否與應用進程屬于同一進程(單機與多機),又分為本地緩存和分布式緩存

    本地緩存

    本地緩存也叫做單機緩存,即將服務部署到一臺服務器上,所以本地緩存只適用于當前系統

    舉個例子,這個就如同每個學校的校規,根據學校的宗旨以教學理念不同,每個學校的校規都不一樣,對于A學校的學生來說,B學校的校規毫無意義,也就是說每個學校的校規只適用與那個學校

    所以本地緩存只適用于當前系統

    優缺點

    • 訪問速度快,但無法進行大數據存儲
    • 集群的數據更新問題
    • 數據隨應用進程的重啟而丟失

    分布式緩存

    分布式緩存也叫做多機緩存,即將服務部署到多臺服務器上,并且通過負載分發將用戶的請求按照?定的規則分發到不同服務器。

    而分布式緩存就如同教育局定下來的教學規范,無論是任何學校都必須遵守這個規范。

    所以分布式緩存適用與所有的系統。

    優缺點

    • 支持大數據量存儲,不受應用進程重啟影響
    • 數據集中存儲,保證數據一致性
    • 數據讀寫分離,高性能,高可用
    • 數據跨網絡傳輸,性能低于本地緩存

    Memcached VS Redis

    在市面上流行的分布式緩存中間件有兩種,分別是Redis和Memcached,我們該如何對他們進行一個選擇呢?
    存儲方式

    • Memcached把所有數據存在內存當中,數據大小不能超過內存大小,并且斷電后數據會丟失。(不支持持久化,導致容災能力弱)
    • Redis有部分存儲在硬盤中,保證了數據的持久性。(持久化策略)

    數據類型

    • Memcached對數據類型的支持較為簡單,有時需要將數據拿到客戶端來進行類似的修改再set回去,增加了網絡IO的次數和數據體積
    • Redis具有復雜的數據類型,并且這些復雜類型的操作和get/set一樣高效

    存儲值大小

    • Redis最大可以達到512mb
    • Memcached最大只有1mb

    性能對于

    • Redis使用單核,在存儲小數據時Redis有著明顯的優勢
    • Memcached使用多核,雖然在存儲小數據的時候性能不及Redis,但是在存儲大數據的時候Memcached要遠遠強于Redis

    雖然從上面的結論以及當前流行程度來看,Redis都遙遙領先,但是在某些場景下,Memcached的作用也會高于Redis(例如海量數據查詢),所以還需要根據具體使用場景來進行選擇

    適用場景

    • Redis除了作為NoSQL數據庫使用外,還能用做消息隊列、數據堆棧和數據緩存等;
    • Memcached適合于緩存SQL語句、數據集、用戶臨時性數據、延遲查詢數據和session等。

    總結

    以上是生活随笔為你收集整理的什么是缓存?为什么要使用Redis?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。