0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis是什么?簡述它的優(yōu)缺點(diǎn)?

麥辣雞腿堡 ? 來源:程序員庫森 ? 作者:程序員庫森 ? 2023-10-09 10:37 ? 次閱讀

Redis是什么?簡述它的優(yōu)缺點(diǎn)?

Redis本質(zhì)上是一個(gè)Key-Value類型的內(nèi)存數(shù)據(jù)庫,很像Memcached,整個(gè)數(shù)據(jù)庫加載在內(nèi)存當(dāng)中操作,定期通過異步操作把數(shù)據(jù)庫中的數(shù)據(jù)flush到硬盤上進(jìn)行保存。

因?yàn)槭羌儍?nèi)存操作,Redis的性能非常出色,每秒可以處理超過 10萬次讀寫操作,是已知性能最快的Key-Value 數(shù)據(jù)庫。

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

讀寫性能極高, Redis能讀的速度是110000次/s,寫的速度是81000次/s。

支持?jǐn)?shù)據(jù)持久化,支持AOF和RDB兩種持久化方式。

支持事務(wù), Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個(gè)操作是原子性的。多個(gè)操作也支持事務(wù),即原子性,通過MULTI和EXEC指令包起來。

數(shù)據(jù)結(jié)構(gòu)豐富,除了支持string類型的value外,還支持hash、set、zset、list等數(shù)據(jù)結(jié)構(gòu)。

支持主從復(fù)制,主機(jī)會(huì)自動(dòng)將數(shù)據(jù)同步到從機(jī),可以進(jìn)行讀寫分離。

豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等特性。

缺點(diǎn):

數(shù)據(jù)庫容量受到物理內(nèi)存的限制,不能用作海量數(shù)據(jù)的高性能讀寫,因此Redis適合的場景主要局限在較小數(shù)據(jù)量的高性能操作和運(yùn)算上。

2. Redis為什么這么快?

內(nèi)存存儲(chǔ):Redis是使用內(nèi)存(in-memeroy)存儲(chǔ),沒有磁盤IO上的開銷。數(shù)據(jù)存在內(nèi)存中,類似于 HashMap,HashMap 的優(yōu)勢就是查找和操作的時(shí)間復(fù)雜度都是O(1)。

單線程實(shí)現(xiàn)( Redis 6.0以前):Redis使用單個(gè)線程處理請求,避免了多個(gè)線程之間線程切換和鎖資源爭用的開銷。注意:單線程是指的是在核心網(wǎng)絡(luò)模型中,網(wǎng)絡(luò)請求模塊使用一個(gè)線程來處理,即一個(gè)線程處理所有網(wǎng)絡(luò)請求。

非阻塞IO:Redis使用多路復(fù)用IO技術(shù),將epoll作為I/O多路復(fù)用技術(shù)的實(shí)現(xiàn),再加上Redis自身的事件處理模型將epoll中的連接、讀寫、關(guān)閉都轉(zhuǎn)換為事件,不在網(wǎng)絡(luò)I/O上浪費(fèi)過多的時(shí)間。

優(yōu)化的數(shù)據(jù)結(jié)構(gòu):Redis有諸多可以直接應(yīng)用的優(yōu)化數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn),應(yīng)用層可以直接使用原生的數(shù)據(jù)結(jié)構(gòu)提升性能。

使用底層模型不同:Redis直接自己構(gòu)建了 VM (虛擬內(nèi)存)機(jī)制 ,因?yàn)橐话愕南到y(tǒng)調(diào)用系統(tǒng)函數(shù)的話,會(huì)浪費(fèi)一定的時(shí)間去移動(dòng)和請求。

Redis的VM(虛擬內(nèi)存)機(jī)制就是暫時(shí)把不經(jīng)常訪問的數(shù)據(jù)(冷數(shù)據(jù))從內(nèi)存交換到磁盤中,從而騰出寶貴的內(nèi)存空間用于其它需要訪問的數(shù)據(jù)(熱數(shù)據(jù))。通過VM功能可以實(shí)現(xiàn)冷熱數(shù)據(jù)分離,使熱數(shù)據(jù)仍在內(nèi)存中、冷數(shù)據(jù)保存到磁盤。這樣就可以避免因?yàn)閮?nèi)存不足而造成訪問速度下降的問題。

Redis提高數(shù)據(jù)庫容量的辦法有兩種:一種是可以將數(shù)據(jù)分割到多個(gè)RedisServer上;另一種是使用虛擬內(nèi)存把那些不經(jīng)常訪問的數(shù)據(jù)交換到磁盤上。需要特別注意的是Redis并沒有使用OS提供的Swap,而是自己實(shí)現(xiàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89038
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3025

    瀏覽量

    74056
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    375

    瀏覽量

    10878
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    nbiot和lora的優(yōu)缺點(diǎn)是什么?

    nbiot和lora的優(yōu)缺點(diǎn)
    發(fā)表于 06-04 06:37

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

    LED的優(yōu)缺點(diǎn)[attach]80908[/attach]
    發(fā)表于 08-20 21:07

    SPI協(xié)議的優(yōu)缺點(diǎn)

    SPI協(xié)議介紹SPI協(xié)議的優(yōu)缺點(diǎn)
    發(fā)表于 12-24 06:29

    LED技術(shù)的優(yōu)缺點(diǎn)

    LED技術(shù)的優(yōu)缺點(diǎn)介紹
    發(fā)表于 01-01 06:05

    無刷電機(jī)的優(yōu)缺點(diǎn)

    無刷電機(jī)的優(yōu)缺點(diǎn)無刷電機(jī)的作用無刷電機(jī)的使用壽命
    發(fā)表于 01-27 06:16

    什么是OFDM?有什么優(yōu)缺點(diǎn)?

    什么是OFDM?有什么優(yōu)缺點(diǎn)?OFDM中降低PAPR的方法有哪些?
    發(fā)表于 10-09 07:41

    什么是IoC?具有哪些優(yōu)缺點(diǎn)?

    什么是IoC?具有哪些優(yōu)缺點(diǎn)
    發(fā)表于 10-21 09:33

    ARM架構(gòu)優(yōu)缺點(diǎn)是什么?

    ARM架構(gòu)優(yōu)缺點(diǎn)是什么?MicroPython項(xiàng)目怎么移植?
    發(fā)表于 01-17 06:40

    LwIP的優(yōu)缺點(diǎn)是什么

    目錄2.1 LwIP 的優(yōu)缺點(diǎn)2.2 LwIP 的文件說明2.2.1 如何獲取 LwIP 源碼文件2.2.2 LwIP 文件說明2.3 使用 vscode 查看源碼2.3.1 查看文件中的符號(hào)列表
    發(fā)表于 01-20 06:25

    什么是SPI? SPI優(yōu)缺點(diǎn)是什么?

    什么是SPI?SPI優(yōu)缺點(diǎn)是什么?
    發(fā)表于 02-17 08:00

    ASCII和hex十六進(jìn)制的優(yōu)缺點(diǎn)是什么?

    ASCII具有哪些優(yōu)缺點(diǎn)?hex十六進(jìn)制的優(yōu)缺點(diǎn)是什么?
    發(fā)表于 02-18 06:26

    液壓傳動(dòng)的優(yōu)缺點(diǎn)

    液壓傳動(dòng)的優(yōu)缺點(diǎn) 液壓傳動(dòng)之所以能得到廣泛的應(yīng)用,是由于具有以下的主要優(yōu)點(diǎn): (1)由于液壓傳動(dòng)是
    發(fā)表于 11-28 18:46 ?9514次閱讀

    簡述FPGA和DSP的優(yōu)缺點(diǎn)及使用場合

    簡述FPGA_和DSP的優(yōu)缺點(diǎn)及使用場合,實(shí)用版
    發(fā)表于 02-16 17:07 ?14次下載

    數(shù)字電源和開關(guān)電源的優(yōu)缺點(diǎn)

    電源的優(yōu)缺點(diǎn) 數(shù)字電源是一種基于數(shù)字信號(hào)處理的電源。使用數(shù)字信號(hào)控制模擬電路的輸出,可以實(shí)現(xiàn)很高的精度和可編程性。數(shù)字電源有以下優(yōu)缺點(diǎn): 1. 優(yōu)點(diǎn): (1)高精度:數(shù)字電源使用數(shù)字信號(hào)控制模擬電路的輸出,具有高精度
    的頭像 發(fā)表于 08-18 15:01 ?2668次閱讀

    redis持久化機(jī)制優(yōu)缺點(diǎn)

    Redis是一個(gè)基于內(nèi)存的高性能鍵值存儲(chǔ)系統(tǒng),提供了多種持久化機(jī)制來保證數(shù)據(jù)的可靠性。本文將詳細(xì)介紹Redis的持久化機(jī)制,并分析其優(yōu)缺點(diǎn)。 一、
    的頭像 發(fā)表于 12-05 10:03 ?725次閱讀