關(guān)系型數(shù)據(jù)庫(kù)Mysql是基于關(guān)系表的數(shù)據(jù)庫(kù),數(shù)據(jù)會(huì)將數(shù)據(jù)持久化到磁盤(pán)上,而非關(guān)系型數(shù)據(jù)庫(kù)Redis是基于特殊的結(jié)構(gòu),并將數(shù)據(jù)存儲(chǔ)到內(nèi)存的數(shù)據(jù)庫(kù)。單單從性能上看,Redis數(shù)據(jù)庫(kù)要優(yōu)于關(guān)系型數(shù)據(jù)庫(kù)Mysql,從數(shù)據(jù)安全性上看,關(guān)系型數(shù)據(jù)庫(kù)要優(yōu)于Redis數(shù)據(jù)庫(kù),所以在實(shí)際開(kāi)發(fā)中一個(gè)項(xiàng)目中Redis和關(guān)系型數(shù)據(jù)庫(kù)會(huì)一起使用,達(dá)到性能和安全性的雙保證。
類(lèi)型:關(guān)系型數(shù)據(jù)庫(kù)
持久化方式:無(wú)論數(shù)據(jù)還是索引都存放在硬盤(pán)中。到要使用的時(shí)候才交換到內(nèi)存中。能夠處理遠(yuǎn)超過(guò)內(nèi)存總量的數(shù)據(jù)。
效率:MySQL存放在硬盤(pán),在速度上肯定沒(méi)有Redis快,但是存放的數(shù)據(jù)量要多的多功能與應(yīng)用:
功能強(qiáng)大,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),應(yīng)用非常廣泛,基本可以滿(mǎn)足所有存儲(chǔ)數(shù)據(jù)的需求,滿(mǎn)足所有應(yīng)用程序等,例如論壇,個(gè)人博客,門(mén)戶(hù)咨詢(xún)等web網(wǎng)站以及OA等其他應(yīng)用。
它使用的核心線(xiàn)程是完全多線(xiàn)程,支持多處理器。
有多種列類(lèi)型:1、2、3、4、和8字節(jié)長(zhǎng)度自有符號(hào)/無(wú)符號(hào)整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM類(lèi)型。
它通過(guò)一個(gè)高度優(yōu)化的類(lèi)庫(kù)實(shí)現(xiàn)SQL函數(shù)庫(kù)并像他們能達(dá)到的一樣快速,通常在查詢(xún)初始化后不該有任何內(nèi)存分配。沒(méi)有內(nèi)存漏洞。
全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(shù)(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢(xún)中混來(lái)自不同數(shù)據(jù)庫(kù)的表。
支持ANSI SQL的LEFT 0UTER JOIN和ODBC。
所有列都有缺省值。你可以用INSERT插入一個(gè)表列的子集,那些沒(méi)用明確給定值的列設(shè)置為他們的決省值。
MySQL可以工作在不同的平臺(tái)上。支持C、C++、Java、Perl、PHP、Python和TCL API。
類(lèi)型:非關(guān)系型數(shù)據(jù)庫(kù)
持久化方式:redis所有數(shù)據(jù)都是放在內(nèi)存中的,持久化是使用RDB方式或者aof方式
效率:Redis的數(shù)據(jù)存放在內(nèi)存,所以速度快但是會(huì)受到內(nèi)存空間限制
功能與應(yīng)用:Redis是一個(gè)K-V數(shù)據(jù)庫(kù),同時(shí)還支持List/Hash/Set/Sorted Set等幾個(gè)簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu),它沒(méi)有二維表的概念,不能做非常復(fù)雜的邏輯查詢(xún),所以只能以這些數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)實(shí)現(xiàn)功能,通常用來(lái)輔助關(guān)系型數(shù)據(jù)庫(kù)(如mysql)使網(wǎng)站更快速。因此它只能滿(mǎn)足一些特定應(yīng)用場(chǎng)景。例如 :緩存,計(jì)數(shù)器,排行榜,活動(dòng)促銷(xiāo),投票排序等
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value,并提供多種語(yǔ)言的API。
Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤(pán)中,重啟的時(shí)候可以再次加載進(jìn)行使用。
Redis不僅僅支持簡(jiǎn)單的key-value類(lèi)型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。
Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
性能極高 – Redis能讀的速度是110000次/s,寫(xiě)的速度是81000次/s 。
豐富的數(shù)據(jù)類(lèi)型 – Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類(lèi)型操作。
原子 – Redis的所有操作都是原子性的,同時(shí)Redis還支持對(duì)幾個(gè)操作全并后的原子性執(zhí)行。
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性。
Redis運(yùn)行在內(nèi)存中但是可以持久化到磁盤(pán),所以在對(duì)不同數(shù)據(jù)集進(jìn)行高速讀寫(xiě)時(shí)需要權(quán)衡內(nèi)存,應(yīng)為數(shù)據(jù)量不能大于硬件內(nèi)存。在內(nèi)存數(shù)據(jù)庫(kù)方面的另一個(gè)優(yōu)點(diǎn)是,相比在磁盤(pán)上相同的復(fù)雜的數(shù)據(jù)結(jié)構(gòu),在內(nèi)存中操作起來(lái)非常簡(jiǎn)單,這樣Redis可以做很多內(nèi)部復(fù)雜性很強(qiáng)的事情。同時(shí),在磁盤(pán)格式方面他們是緊湊的以追加的方式產(chǎn)生的,因?yàn)樗麄儾⒉恍枰M(jìn)行隨機(jī)訪(fǎng)問(wèn)。
建站時(shí),應(yīng)首先選擇關(guān)系型數(shù)據(jù)庫(kù)(如mysql)做為基礎(chǔ)數(shù)據(jù)庫(kù),如果想讓網(wǎng)站更快速,再選擇Redis來(lái)配合
使用。一般Redis不單獨(dú)作為建站需要,通常用來(lái)配合關(guān)系型數(shù)據(jù)庫(kù)(mysql)來(lái)滿(mǎn)足特定需求。
Redis與mysql數(shù)據(jù)同步:
讀:讀redis->如沒(méi)有,讀mysql->把mysql數(shù)據(jù)寫(xiě)回redis
寫(xiě):寫(xiě)mysql->成功,寫(xiě)redis
掃碼贊賞,鼓勵(lì)支持
相關(guān)問(wèn)題
Centos 7.x 下做端口映射/端口轉(zhuǎn)發(fā)Windows server 2008/2012/2016/2019 服務(wù)器桌面不顯示我的電腦(計(jì)算機(jī))的解決方案No input file specified的解決方法網(wǎng)站如何添加工信部網(wǎng)站備案號(hào)和鏈接代碼騰訊云對(duì)象存儲(chǔ)內(nèi)網(wǎng)與外網(wǎng)地址訪(fǎng)問(wèn)Windows遠(yuǎn)程桌面多個(gè)用戶(hù)如何同時(shí)使用Chrome谷歌瀏覽器?