為什么說Redis是單線程的以及Redis為什么這么快?
發(fā)布日期:
2019-01-01


一、前言

近乎所有與Java相關(guān)的面試都會(huì)問到緩存的問題,基礎(chǔ)一點(diǎn)的會(huì)問到什么是“二八定律”、什么是“熱數(shù)據(jù)和冷數(shù)據(jù)”,復(fù)雜一點(diǎn)的會(huì)問到緩存雪崩、緩存穿透、緩存預(yù)熱、緩存更新、緩存降級等問題,這些看似不常見的概念,都與我們的緩存服務(wù)器相關(guān),一般常用的緩存服務(wù)器有Redis、Memcached等,而筆者目前最常用的也只有Redis這一種。

如果你在以前面試的時(shí)候還沒有遇到過面試官問你《為什么說Redis是單線程的以及Redis為什么這么快!》,那么你看到這篇文章的時(shí)候,你應(yīng)該覺得是一件很幸運(yùn)的事情!如果你剛好是一位高逼格的面試官,你也可以拿這道題去面試對面“望穿秋水”般的小伙伴,測試一下他的掌握程度。

好啦!步入正題!我們先探討一下Redis是什么,Redis為什么這么快、然后在探討一下為什么Redis是單線程的?


二、Redis簡介

Redis是一個(gè)開源的內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作:數(shù)據(jù)庫、緩存和消息中間件。

它支持多種類型的數(shù)據(jù)結(jié)構(gòu),如字符串(String),散列(Hash),列表(List),集合(Set),有序集合(Sorted Set或者是ZSet)與范圍查詢,Bitmaps,Hyperloglogs 和地理空間(Geospatial)索引半徑查詢。其中常見的數(shù)據(jù)結(jié)構(gòu)類型有:String、List、Set、Hash、ZSet這5種。

Redis 內(nèi)置了復(fù)制(Replication),LUA腳本(Lua scripting), LRU驅(qū)動(dòng)事件(LRU eviction),事務(wù)(Transactions) 和不同級別的磁盤持久化(Persistence),并通過 Redis哨兵(Sentinel www.xucaizxyl.com)和自動(dòng)分區(qū)(Cluster)提供高可用性(High Availability)。

Redis也提供了持久化的選項(xiàng),這些選項(xiàng)可以讓用戶將自己的數(shù)據(jù)保存到磁盤上面進(jìn)行存儲(chǔ)。根據(jù)實(shí)際情況,可以每隔一定時(shí)間將數(shù)據(jù)集導(dǎo)出到磁盤(快照),或者追加到命令日志中(AOF只追加文件),他會(huì)在執(zhí)行寫命令時(shí),將被執(zhí)行的寫命令復(fù)制到硬盤里面。您也可以關(guān)閉持久化功能,將Redis作為一個(gè)高效的網(wǎng)絡(luò)的緩存數(shù)據(jù)功能使用。

Redis不使用表,他的數(shù)據(jù)庫不會(huì)預(yù)定義或者強(qiáng)制去要求用戶對Redis存儲(chǔ)的不同數(shù)據(jù)進(jìn)行關(guān)聯(lián)。
??????數(shù)據(jù)庫的工作模式按存儲(chǔ)方式可分為:硬盤數(shù)據(jù)庫和內(nèi)存數(shù)據(jù)庫。Redis 將數(shù)據(jù)儲(chǔ)存在內(nèi)存里面,讀寫數(shù)據(jù)的時(shí)候都不會(huì)受到硬盤 I/O 速度的限制,所以速度極快。

(1)硬盤數(shù)據(jù)庫的工作模式:

這里寫圖片描述

(2)內(nèi)存數(shù)據(jù)庫的工作模式:

這里寫圖片描述

看完上述的描述,對于一些常見的Redis相關(guān)的面試題,是否有所認(rèn)識(shí)了,例如:什么是Redis、Redis常見的數(shù)據(jù)結(jié)構(gòu)類型有哪些、Redis是如何進(jìn)行持久化的等。

相關(guān)推薦

【DTCC2019】數(shù)據(jù)風(fēng)云,十年變遷 - 第十屆中國數(shù)據(jù)庫技術(shù)大會(huì)隆重啟動(dòng)
作為國內(nèi)備受關(guān)注的數(shù)據(jù)庫及大數(shù)據(jù)領(lǐng)域技術(shù)盛會(huì),第十屆中國數(shù)據(jù)...
董明珠談小米做空調(diào):質(zhì)量和技術(shù)比他們好,沒壓力
董明珠稱,格力啟動(dòng)九萬員工開網(wǎng)店的模式后,格力業(yè)績當(dāng)月賣了2...
半年墜毀兩架,波音737MAX-8你還敢坐嗎?
當(dāng)?shù)貢r(shí)間3月10日上午,埃塞俄比亞航空公司的一架載有149名...
近20年數(shù)據(jù)被黑客全部清空 美國電郵商 VFEmail宣布倒閉
數(shù)據(jù),對于企業(yè)來講是至關(guān)重要的,如果企業(yè)的數(shù)據(jù)庫被黑客攻陷,...