redis組內(nèi)分享_第1頁(yè)
redis組內(nèi)分享_第2頁(yè)
redis組內(nèi)分享_第3頁(yè)
redis組內(nèi)分享_第4頁(yè)
redis組內(nèi)分享_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Redis知識(shí)分享By 鐘楊Redis簡(jiǎn)介 Redis 是完全開(kāi)源免費(fèi)的,遵守BSD協(xié)議,是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):1. Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。2. Redis不僅僅支持簡(jiǎn)單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。3. Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。 Redis參考教程地址:http:/ 優(yōu)勢(shì)優(yōu)勢(shì) 性能極高 Redis能讀的速度是110000次/s,

2、寫(xiě)的速度是81000次/s 。 豐富的數(shù)據(jù)類型 Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作。 原子 Redis的所有操作都是原子性的,同時(shí)Redis還支持對(duì)幾個(gè)操作全并后的原子性執(zhí)行。 豐富的特性 Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性。Redis常見(jiàn)命令 參考W3C school之類的地址: http:/ redis-server:Redis服務(wù)器的啟動(dòng)程序。 redis-server redis.config redis-cli:Redis命令行操作工具。當(dāng)然

3、,你也可以用telnet根據(jù)其純文本協(xié)議來(lái)操作。 redis-cli p 6379 redis-benchmark:Redis性能測(cè)試工具,測(cè)試Redis在你的系統(tǒng)及你的配置下的讀寫(xiě)性能。 redis-stat:Redis狀態(tài)檢測(cè)工具,可以檢測(cè)Redis當(dāng)前狀態(tài)參數(shù)及延遲狀況。Redis 數(shù)據(jù)類型數(shù)據(jù)類型 string(字符串) hash(哈希) list(列表) set(集合) zset(sorted set:有序集合)。String(字符串字符串)string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個(gè)key對(duì)應(yīng)一個(gè)value。string類型是二進(jìn)制安全

4、的。意思是redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對(duì)象 。string類型是Redis最基本的數(shù)據(jù)類型,一個(gè)鍵最大能存儲(chǔ)512MB。Hash(哈希哈希)Redis hash 是一個(gè)鍵值對(duì)集合。Redis hash是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象。Redis配置文件解析 請(qǐng)參見(jiàn)redis安裝目錄的redis.conf; 網(wǎng)絡(luò)鏈接:http:/ 鏈接文件。Redis的持久化 redis目前兩種方式來(lái)進(jìn)行持久化:1. RDB的持久化2. AOF的持久化RDB的持久化這兩段的內(nèi)容是指促發(fā)redis進(jìn)行rdb存儲(chǔ)的方式和存儲(chǔ)

5、的名稱,當(dāng)滿足其中的任何一個(gè)條件的時(shí)候,redis就會(huì)執(zhí)行save命令,將內(nèi)存數(shù)據(jù)庫(kù)里面的信息持久化到磁盤上面去,命名為dump.rdb。rdb可以顯式的執(zhí)行,在redis命令行里面,執(zhí)行save或者bgsave即可執(zhí)行rdb的存儲(chǔ),不同的是save是堵塞現(xiàn)有請(qǐng)求,而bgsave是后臺(tái)fork一份主進(jìn)程進(jìn)行保存,配置中的save執(zhí)行的bgsave命令。redis怎樣來(lái)觸發(fā)配置里面的save條件呢?在redis服務(wù)器上面,維持了一個(gè)dirty計(jì)數(shù)器和lastsave的屬性,dirty計(jì)數(shù)器記錄上一次save或者bgsave之后,redis數(shù)據(jù)庫(kù)有了多少次更改(插入、更新、刪除等操作),而last

6、save屬性是上一次服務(wù)器save或者bgsave執(zhí)行的時(shí)間戳,redis還有一個(gè)serverCron函數(shù),每100毫秒就檢查下服務(wù)器的狀態(tài),如果滿足save配置里面的條件,則除非basave請(qǐng)求,進(jìn)行持久化的存儲(chǔ)。AOF持久化 第一段代表開(kāi)啟aof持久化,生成名稱為appendonly.aof的文件,第二部分代表每秒鐘執(zhí)行一次aof持久。aof還原數(shù)據(jù)理解起來(lái)很簡(jiǎn)單,就是把數(shù)據(jù)按命令寫(xiě)進(jìn)去而已。 因?yàn)槲覀兘?jīng)常操作的可能都是同一條key,所以會(huì)存在aof出現(xiàn)很多重復(fù)數(shù)據(jù)的情況,導(dǎo)致無(wú)謂的體積增大,aof提供了一個(gè)bgrewriteaof命令,將原來(lái)的數(shù)據(jù)去掉重復(fù)值。rdb和aof結(jié)構(gòu)分析Red

7、is主從復(fù)制 redis為了充分發(fā)揮自己的性能,在生產(chǎn)上經(jīng)常使用一臺(tái)master主機(jī)和一臺(tái)slave或者幾臺(tái)slave機(jī)器來(lái)做讀寫(xiě)分離,而這個(gè)里面的機(jī)制就是用了redis服務(wù)器間的復(fù)制。 對(duì)應(yīng)兩臺(tái)服務(wù)器,可以直接用slaveof這個(gè)命令來(lái)設(shè)置主從,但是這個(gè)僅僅是測(cè)試用,一般是在服務(wù)器里面設(shè)置,修改redis.conf,配置slaveof master的ip master的port,再設(shè)置只讀屬性,建立兩臺(tái)機(jī)器的主從次序。老版老版復(fù)制復(fù)制 redis在老版復(fù)制功能用了同步(sync)和命令傳播(command propagate)兩個(gè)操作:1.同步操作將從服務(wù)器的數(shù)據(jù)庫(kù)狀態(tài)更新到主服務(wù)器所處的數(shù)

8、據(jù)庫(kù)狀態(tài)。2.命令傳播操作則用于在主服務(wù)器的數(shù)據(jù)庫(kù)狀態(tài)被修改后,主從服務(wù)器的數(shù)據(jù)庫(kù)狀態(tài)不一致時(shí),讓他們保持一致。 SYNC命令解析:1.從服務(wù)器向主服務(wù)器發(fā)送sync命令。2.收到sync命令的主服務(wù)器執(zhí)行BGSAVE命令,后臺(tái)生成一個(gè)rdb文件,使用緩沖區(qū)記錄到現(xiàn)在開(kāi)始執(zhí)行的所有寫(xiě)命令。3.主服務(wù)器發(fā)送rdb文件給從服務(wù)器,從服務(wù)器接收并載入,將數(shù)據(jù)庫(kù)狀態(tài)更新至主服務(wù)器執(zhí)行bgsave命令時(shí)的數(shù)據(jù)庫(kù)狀態(tài)。4.主服務(wù)器將記錄在緩沖區(qū)里的寫(xiě)命令發(fā)送給從服務(wù)器,從服務(wù)器執(zhí)行寫(xiě)命令,使數(shù)據(jù)庫(kù)狀態(tài)更新與主服務(wù)器狀態(tài)一致。5.命令傳播解析: 當(dāng)同步之后,主服務(wù)器狀態(tài)又發(fā)生改變的時(shí)候,同時(shí)發(fā)送一條命令讓從

9、服務(wù)器狀態(tài)更新,最終保持一致。6.老版的復(fù)制是在從服務(wù)器斷線重連后的sync效率很低,因?yàn)樗J(rèn)從頭到尾整體復(fù)制,當(dāng)數(shù)據(jù)量比較大的時(shí)候,會(huì)非常耗資源。新版新版復(fù)制復(fù)制 redis2.8開(kāi)始之后,使用了PSYNC來(lái)代替SYNC,主要處理斷線重連的問(wèn)題。PSYNC有完整重同步和部分重同步,其中完整重同步和SYNC幾乎一致。而部分重同步專門處理斷線后復(fù)制的情況,從服務(wù)器在斷線后重連到主服務(wù)器時(shí),主服務(wù)器將這之間的寫(xiě)命令發(fā)送給從服務(wù)器,這樣數(shù)據(jù)庫(kù)最后更新一致,節(jié)能環(huán)保高效。 部分重同步的實(shí)現(xiàn)方式部分重同步的實(shí)現(xiàn)方式:1. 記錄主服務(wù)器的復(fù)制偏移量和從服務(wù)器的復(fù)制偏移量。2. 命令傳播的時(shí)候還把主服務(wù)器命令寫(xiě)到的復(fù)制積壓緩沖區(qū)。3. 記錄二者服務(wù)器的運(yùn)行ID,如果一致就部分重同步,如果不一致則完整復(fù)制。PSYNC詳細(xì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論