redis入門學(xué)習(xí)手冊(cè)分享

這篇文章主要介紹redis入門學(xué)習(xí)手冊(cè)分享,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)建站是專業(yè)的黃岡網(wǎng)站建設(shè)公司,黃岡接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行黃岡網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

一、前言

在過去的幾年時(shí)間里,一提到高并發(fā)、海量數(shù)據(jù)存儲(chǔ)解決方案,我們想到的都是NoSql數(shù)據(jù)庫(kù),與之相應(yīng)的產(chǎn)品自然也呈現(xiàn)出勃勃生機(jī)。而在眾多產(chǎn)品中脫穎而出的有Redis、MongoDB、BerkeleyDB和CouchDB等。下面來簡(jiǎn)單說明一下。

Redis的優(yōu)勢(shì):

1、和其他NOSQL產(chǎn)品相比,Redis的易用性極高,因此對(duì)于那些有類似產(chǎn)品使用經(jīng)驗(yàn)的開發(fā)者來說,一兩天,甚至是幾個(gè)小時(shí)之后就可以利用Redis來搭建自己的平臺(tái)了。

2、在解決了很多通用性問題的同時(shí),也為一些個(gè)性化問題提供了相關(guān)的解決方案,如索引引擎、統(tǒng)計(jì)排名、消息隊(duì)列服務(wù)等。

三、目前版本中Redis存在的主要問題:

1、在官方版本中沒有提供Windows平臺(tái)的支持,已發(fā)布的正式版本中只是支持類Unix和MacOSX平臺(tái)。
2、沒有提供集群的支持,然而據(jù)官網(wǎng)所述,預(yù)計(jì)在2.6版本中會(huì)加入該特征。
3、Publication/Subscription功能中,如果master宕機(jī),slave無法自動(dòng)提升為master。

四、和關(guān)系型數(shù)據(jù)庫(kù)的比較:

在目前版本(2.4.7)的Redis中,提供了對(duì)五種不同數(shù)據(jù)類型的支持,其中只有一種類型,既string類型可以被視為Key-Value結(jié)構(gòu),而其他的數(shù)據(jù)類型均有適用于各自特征的應(yīng)用場(chǎng)景,至于具體細(xì)節(jié)我們將會(huì)在該系列后面的博客中予以說明。

相比于關(guān)系型數(shù)據(jù)庫(kù),由于其存儲(chǔ)結(jié)構(gòu)相對(duì)簡(jiǎn)單,因此Redis并不能對(duì)復(fù)雜的邏輯關(guān)系提供很好的支持,然而在適用于Redis的場(chǎng)景中,我們卻可以由此而獲得效率上的顯著提升。即便如此,Redis還是為我們提供了一些數(shù)據(jù)庫(kù)應(yīng)該具有的基礎(chǔ)概念,如:在同一連接中可以選擇打開不同的數(shù)據(jù)庫(kù),然而不同的是,Redis中的數(shù)據(jù)庫(kù)是通過數(shù)字來進(jìn)行命名的,缺省情況下打開的數(shù)據(jù)庫(kù)為0。如果程序在運(yùn)行過程中打算切換數(shù)據(jù)庫(kù),可以使用Redis的select命令來打開其他數(shù)據(jù)庫(kù),如select 1,如果此后還想再切換回缺省數(shù)據(jù)庫(kù),只需執(zhí)行select 0即可。

在數(shù)據(jù)存儲(chǔ)方面,Redis遵循了現(xiàn)有NoSQL數(shù)據(jù)庫(kù)的主流思想,即Key作為數(shù)據(jù)檢索的唯一標(biāo)識(shí),我們可以將其簡(jiǎn)單的理解為關(guān)系型數(shù)據(jù)庫(kù)中索引的鍵,而Value則作為數(shù)據(jù)存儲(chǔ)的主要對(duì)象,其中每一個(gè)Value都有一個(gè)Key與之關(guān)聯(lián),這就好比索引中物理數(shù)據(jù)在數(shù)據(jù)表中存儲(chǔ)的位置。在Redis中,Value將被視為二進(jìn)制字節(jié)流用于存儲(chǔ)任何格式的數(shù)據(jù),如Json、XML和序列化對(duì)象的字節(jié)流等,因此我們也可以將其想象為RDB中的BLOB類型字段。由此可見,在進(jìn)行數(shù)據(jù)查詢時(shí),我們只能基于Key作為我們查詢的條件,當(dāng)然我們也可以應(yīng)用Redis中提供的一些技巧將Value作為其他數(shù)據(jù)的Key,這些知識(shí)我們都會(huì)在后面的博客中予以介紹。

五、如何持久化內(nèi)存數(shù)據(jù):

缺省情況下,Redis會(huì)參照當(dāng)前數(shù)據(jù)庫(kù)中數(shù)據(jù)被修改的數(shù)量,在達(dá)到一定的閾值后會(huì)將數(shù)據(jù)庫(kù)的快照存儲(chǔ)到磁盤上,這一點(diǎn)我們可以通過配置文件來設(shè)定該閾值。通常情況下,我們也可以將Redis設(shè)定為定時(shí)保存。如當(dāng)有1000個(gè)以上的鍵數(shù)據(jù)被修改時(shí),Redis將每隔60秒進(jìn)行一次數(shù)據(jù)持久化操作。缺省設(shè)置為,如果有9個(gè)或9個(gè)以下數(shù)據(jù)修改是,Redis將每15分鐘持久化一次。

從上面提到的方案中可以看出,如果采用該方式,Redis的運(yùn)行時(shí)效率將會(huì)是非常高效的,既每當(dāng)有新的數(shù)據(jù)修改發(fā)生時(shí),僅僅是內(nèi)存中的緩存數(shù)據(jù)發(fā)生改變,而這樣的改變并不會(huì)被立即持久化到磁盤上,從而在絕大多數(shù)的修改操作中避免了磁盤IO的發(fā)生。然而事情往往是存在其兩面性的,在該方法中我們確實(shí)得到了效率上的提升,但是卻失去了數(shù)據(jù)可靠性。如果在內(nèi)存快照被持久化到磁盤之前,Redis所在的服務(wù)器出現(xiàn)宕機(jī),那么這些未寫入到磁盤的已修改數(shù)據(jù)都將丟失。為了保證數(shù)據(jù)的高可靠性,Redis還提供了另外一種數(shù)據(jù)持久化機(jī)制--Append模式。如果Redis服務(wù)器被配置為該方式,那么每當(dāng)有數(shù)據(jù)修改發(fā)生時(shí),都會(huì)被立即持久化到磁盤。

以上是“redis入門學(xué)習(xí)手冊(cè)分享”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前名稱:redis入門學(xué)習(xí)手冊(cè)分享
URL鏈接:http://muchs.cn/article32/ihippc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、微信小程序、網(wǎng)站導(dǎo)航品牌網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管