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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

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

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

文章目錄

  • 什么是緩存?
    • 緩存 VS 數(shù)據(jù)庫(kù)
  • 本地緩存 VS 分布式緩存
    • 本地緩存
    • 分布式緩存
  • Memcached VS Redis


什么是緩存?

緩存是?個(gè)高速數(shù)據(jù)交換的存儲(chǔ)器,使用它可以快速的訪問和操作數(shù)據(jù)。

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

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


緩存 VS 數(shù)據(jù)庫(kù)

相比于數(shù)據(jù)庫(kù)而言,緩存的操作性能更高

  • 緩存?般都是通過 key-value 查詢數(shù)據(jù),因?yàn)椴幌駭?shù)據(jù)庫(kù)?樣還有查詢的條件等因素,所以查詢的性能?般會(huì)比數(shù)據(jù)庫(kù)高;
  • 緩存的數(shù)據(jù)是存儲(chǔ)在內(nèi)存中的,而數(shù)據(jù)庫(kù)的數(shù)據(jù)是存儲(chǔ)在磁盤中的,因?yàn)閮?nèi)存的操作性能遠(yuǎn)遠(yuǎn)大于磁盤,因此緩存的查詢效率會(huì)高很多;
  • 緩存更容易做分布式部署(當(dāng)?臺(tái)服務(wù)器變成多臺(tái)相連的服務(wù)器集群),而數(shù)據(jù)庫(kù)?般比較難實(shí)現(xiàn)分布式部署,因此緩存的負(fù)載和性能更容易平行擴(kuò)展和增加。

  • 本地緩存 VS 分布式緩存

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

    本地緩存

    本地緩存也叫做單機(jī)緩存,即將服務(wù)部署到一臺(tái)服務(wù)器上,所以本地緩存只適用于當(dāng)前系統(tǒng)

    舉個(gè)例子,這個(gè)就如同每個(gè)學(xué)校的校規(guī),根據(jù)學(xué)校的宗旨以教學(xué)理念不同,每個(gè)學(xué)校的校規(guī)都不一樣,對(duì)于A學(xué)校的學(xué)生來說,B學(xué)校的校規(guī)毫無意義,也就是說每個(gè)學(xué)校的校規(guī)只適用與那個(gè)學(xué)校

    所以本地緩存只適用于當(dāng)前系統(tǒng)

    優(yōu)缺點(diǎn)

    • 訪問速度快,但無法進(jìn)行大數(shù)據(jù)存儲(chǔ)
    • 集群的數(shù)據(jù)更新問題
    • 數(shù)據(jù)隨應(yīng)用進(jìn)程的重啟而丟失

    分布式緩存

    分布式緩存也叫做多機(jī)緩存,即將服務(wù)部署到多臺(tái)服務(wù)器上,并且通過負(fù)載分發(fā)將用戶的請(qǐng)求按照?定的規(guī)則分發(fā)到不同服務(wù)器。

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

    所以分布式緩存適用與所有的系統(tǒng)。

    優(yōu)缺點(diǎn)

    • 支持大數(shù)據(jù)量存儲(chǔ),不受應(yīng)用進(jìn)程重啟影響
    • 數(shù)據(jù)集中存儲(chǔ),保證數(shù)據(jù)一致性
    • 數(shù)據(jù)讀寫分離,高性能,高可用
    • 數(shù)據(jù)跨網(wǎng)絡(luò)傳輸,性能低于本地緩存

    Memcached VS Redis

    在市面上流行的分布式緩存中間件有兩種,分別是Redis和Memcached,我們?cè)撊绾螌?duì)他們進(jìn)行一個(gè)選擇呢?
    存儲(chǔ)方式

    • Memcached把所有數(shù)據(jù)存在內(nèi)存當(dāng)中,數(shù)據(jù)大小不能超過內(nèi)存大小,并且斷電后數(shù)據(jù)會(huì)丟失。(不支持持久化,導(dǎo)致容災(zāi)能力弱)
    • Redis有部分存儲(chǔ)在硬盤中,保證了數(shù)據(jù)的持久性。(持久化策略)

    數(shù)據(jù)類型

    • Memcached對(duì)數(shù)據(jù)類型的支持較為簡(jiǎn)單,有時(shí)需要將數(shù)據(jù)拿到客戶端來進(jìn)行類似的修改再set回去,增加了網(wǎng)絡(luò)IO的次數(shù)和數(shù)據(jù)體積
    • Redis具有復(fù)雜的數(shù)據(jù)類型,并且這些復(fù)雜類型的操作和get/set一樣高效

    存儲(chǔ)值大小

    • Redis最大可以達(dá)到512mb
    • Memcached最大只有1mb

    性能對(duì)于

    • Redis使用單核,在存儲(chǔ)小數(shù)據(jù)時(shí)Redis有著明顯的優(yōu)勢(shì)
    • Memcached使用多核,雖然在存儲(chǔ)小數(shù)據(jù)的時(shí)候性能不及Redis,但是在存儲(chǔ)大數(shù)據(jù)的時(shí)候Memcached要遠(yuǎn)遠(yuǎn)強(qiáng)于Redis

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

    適用場(chǎng)景

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

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。