第1章redis數(shù)據(jù)結(jié)構(gòu)用法與用例-節(jié)簡介_第1頁
第1章redis數(shù)據(jù)結(jié)構(gòu)用法與用例-節(jié)簡介_第2頁
第1章redis數(shù)據(jù)結(jié)構(gòu)用法與用例-節(jié)簡介_第3頁
第1章redis數(shù)據(jù)結(jié)構(gòu)用法與用例-節(jié)簡介_第4頁
第1章redis數(shù)據(jù)結(jié)構(gòu)用法與用例-節(jié)簡介_第5頁
免費預(yù)覽已結(jié)束,剩余15頁可下載查看

下載本文檔

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

文檔簡介

感謝!我會努力地將自己所知道的東西給大家,也希望大家能夠享受這個課程。小象科技讓你的數(shù)據(jù)產(chǎn)生價值課程目標(biāo)由淺入深、循序漸進(jìn)地學(xué)Redis

的應(yīng)用、管理等方面的知識。其中包括:學(xué)會使用

Redis

的單機和多機功能。學(xué)會使用

Redis

來構(gòu)建實際的應(yīng)用程序。學(xué)會使用

Redis

自帶的工具以及第 工具,來

和管理

Redis

。了解

Redis

的實現(xiàn)原理,以便更好、更高效地使用Redis

。小象科技讓你的數(shù)據(jù)產(chǎn)生價值Redis

的誕生在學(xué)習(xí)Redis

之前,讓先來了解Redis

的誕生過程。小象科技讓你的數(shù)據(jù)產(chǎn)生價值Redis

的創(chuàng)建者SalvatoreSanfilippo

(antirez),男,意大利人,出生并居住在西西里

島,個人

。早年為系統(tǒng)管理員,關(guān)注計算機安全領(lǐng)域,于1999

年發(fā)明了idle

scan

掃描技術(shù),該技術(shù)現(xiàn)在在nmap

掃描器上也有實現(xiàn)。2004

年~2006

年期間在做 方面的工作,并為此寫了名為

Jim

Tcl

解釋器

、《Tcl

Wise:Guide

to

the

Tcl

programminglanguage》一書以及《TcltheMisunderstood》文檔。(Redis的事件處理器就重寫自

Jim的事件循環(huán),而

Redis

的測試套件也使用

Tcl

語言來寫的)。除此之外,他在2006

還寫了

H

——

一個

TCP/IP

包分析器。之后開始接觸web,在2007年和另一個朋友共同創(chuàng)建了

,并因為解決這個 的負(fù)載問題而在

2009

2

26

日發(fā)明了

Redis。小象科技讓你的數(shù)據(jù)產(chǎn)生價值一個訪客信息追蹤過JavaScript,

可以通,將訪客的

IP

地頁址、所屬國家、閱覽器信息、被面的地址等數(shù)據(jù)傳送給LLOOGG.com

。然后

會將這些瀏覽數(shù)據(jù)通過

web頁面實時地展示給用戶,并

起 的5

10,000

條瀏覽記錄以便進(jìn)行查閱。小象科技讓你的數(shù)據(jù)產(chǎn)生價值用戶界面p.s. ytics

直到2011

年才有了實時功能,的實時反饋想法在當(dāng)時(2007年)還是很有新意的。小象科技讓你的數(shù)據(jù)產(chǎn)生價值的方式(1)為了記錄每個被追蹤 的瀏覽信息,列表(list),每個列表需要根據(jù)用戶的設(shè)置,需要為每個被追蹤的

創(chuàng)建一個的5

至10,000

條瀏覽記錄。小象科技讓你的數(shù)據(jù)產(chǎn)生價值的

方式(2)每當(dāng)某個被追蹤的(push)到與該新增一條

瀏覽記錄時, 就會將這條新的瀏覽記錄推入相對應(yīng)的列表里面,當(dāng)列表的長度超過用戶指定的最大長度時,程序每向列表推入一條新的記錄,就需要從列表

出(pop)一條最舊的記錄。小象科技讓你的數(shù)據(jù)產(chǎn)生價值的負(fù)載問題隨著

的用戶越來越多,越多,要執(zhí)行的推入和彈出操作也越來越多。要的列表數(shù)量也越來當(dāng)時使用

MySQL數(shù)據(jù)庫,而

MySQL每次執(zhí)行推入和彈出操作都要進(jìn)行硬盤寫入和 ,程序的性能嚴(yán)重受制于硬盤

I/O

。最終,

所使用的MySQL

再也沒辦法在當(dāng)時的VPS上處理新增的大量負(fù)載,因為

當(dāng)時還沒有找到 模式,所以為了盡量節(jié)約開支,

antirez

沒有選擇直接升級

所使用的VPS,而是打算另尋辦法,在現(xiàn)有硬件的基礎(chǔ)上,通過提升列表操作的性能來解決負(fù)載問題。小象科技讓你的數(shù)據(jù)產(chǎn)生價值Redis

的誕生為了在不升級VPS

的前提下,解決的內(nèi)存數(shù)據(jù)庫原型(prototype)。的負(fù)載問題,antirez

決定自己寫一個具有列表結(jié)構(gòu)這個數(shù)據(jù)庫原型支持

O(1)

復(fù)雜的推入和彈出操作,并且將數(shù)據(jù) 在內(nèi)存而不是硬盤,所以程序的性能不會受到硬盤

I/O

限制,可以以極快的速度執(zhí)行針對列表的推入和彈出操作。經(jīng)過實驗,這個原型的確可以在不升級

VPS

的前提下,解決

當(dāng)時的負(fù)載問題。于是

antirez

使用

C

語言重寫了這個內(nèi)存數(shù)據(jù)庫,并給它加上了持久化功能,

Redis

就此誕生!小象科技讓你的數(shù)據(jù)產(chǎn)生價值Redis

的演進(jìn)經(jīng)過五年時間的演進(jìn),Redis

發(fā)生了以下變化……剛開始現(xiàn)在只支持列表結(jié)構(gòu)支持字符串、列表、散列等六種結(jié)構(gòu),以及豐富的附加功能只能單機運行,沒有內(nèi)置的方法可以方便地將數(shù)據(jù)庫分布到多臺機器上支持多機運行(包括 、自動故障轉(zhuǎn)移以及分布式數(shù)據(jù)庫)少有人知的開源項目廣為人知并廣泛使用在很多大型 的

熱門開源項目接受捐款支持,antirez

自己無償開發(fā)Pivotal公司出資支持開發(fā),并且有非常多的開發(fā)者通過和為這個項目添磚加瓦小象科技讓你的數(shù)據(jù)產(chǎn)生價值小象科技讓你的數(shù)據(jù)產(chǎn)生價值Redis

的特色世界上有無數(shù)種數(shù)據(jù)庫,為什么要選擇使用

Redis

呢?獨特的鍵值對模型很多數(shù)據(jù)庫只能處理一種數(shù)據(jù)結(jié)構(gòu):SQL

數(shù)據(jù)庫——表格Memcached——鍵值對數(shù)據(jù)庫,鍵和值都是字符串文檔數(shù)據(jù)庫(CouchDB、MongoDB)

——由

JSON/BSON

組成的文檔(

)而一旦數(shù)據(jù)庫提供的數(shù)據(jù)結(jié)構(gòu)不適合去做某件事的話,程序?qū)懫饋砭蜁浅5芈闊┖筒蛔匀?。Redis也是鍵值對數(shù)據(jù)庫,但和

Memcached不同的是,Redis的值不僅可以是字符串,它還可以其他五種數(shù)據(jù)結(jié)構(gòu)中的任意一種。通過選用不同的數(shù)據(jù)結(jié)構(gòu),用戶可以使用Redis解決各式各樣的問題。小象科技讓你的數(shù)據(jù)產(chǎn)生價值內(nèi)

存,速度極快Redis

將數(shù)據(jù)在內(nèi)存里面,讀寫數(shù)據(jù)的時候都不會受到硬盤I/O

速度的限制,所以速度極快。硬盤數(shù)據(jù)庫的工作模式。內(nèi)存數(shù)據(jù)庫數(shù)據(jù)庫的工作模式。小象科技讓你的數(shù)據(jù)產(chǎn)生價值豐富的附加功能持久化功能:將

在內(nèi)存里面的數(shù)據(jù)保存到硬盤里面,保障數(shù)據(jù)安全,方便進(jìn)行數(shù)據(jù)備份和恢復(fù)。發(fā)布與訂閱功能:將消息同時分發(fā)給多個客戶端,用于構(gòu)建廣播系統(tǒng)。過期鍵功能:為鍵設(shè)置一個過期時間,讓它在指定的時間之后自動被刪除。事務(wù)功能:原子地執(zhí)行多個操作,并提供樂觀鎖功能,保證處理數(shù)據(jù)時的安全性。:功能:在服務(wù)器端原子地執(zhí)行多個操作,完成復(fù)雜的功能,并減少客戶端與服務(wù)器之間的通信往返次數(shù)。:為指定的

Redis

服務(wù)器創(chuàng)建一個或多個

品,用于提升數(shù)據(jù)安全性,并分擔(dān)讀請求的負(fù)載。

SentinelRedis

服務(wù)器的狀態(tài),并在服務(wù)器發(fā)生故障時,進(jìn)行自動故障轉(zhuǎn)移。集群:創(chuàng)建分布式數(shù)據(jù)庫,每個服務(wù)器分別執(zhí)行一部分寫操作和讀操作。小象科技讓你的數(shù)據(jù)產(chǎn)生價值完善的文檔Redis

具有完善、易讀的文檔,加上Redis

本身功能的簡單性,就算是新手也可以輕松上手。小象科技讓你的數(shù)據(jù)產(chǎn)生價值良好的支持antirez

非常勤奮,在每個版本都會不斷地增加有用的新功能:2.6

新增 功能,并為很多命令添加了多參數(shù)支持(比如

SADD、ZADD、等等);2.8

添加了數(shù)據(jù)庫通知功能,HyperLogLog

數(shù)據(jù)結(jié)構(gòu)以及SCAN

命令,實現(xiàn)了部分重同步;3.0

將推出穩(wěn)定版的

Redis

集群,另外還有 新功能陸續(xù)開發(fā)中……Bug

一旦出現(xiàn)就會很快被修復(fù),齊全的測試套件以及穩(wěn)扎穩(wěn)打的開發(fā)策略,使得

Redis

非常健壯可靠。有問題時,在

Redis

上發(fā)貼,或者到Redis

頁面發(fā)

issue,又或者直接和作者

antirez聯(lián)系,通常都可以很快得到回應(yīng)。Pivotal

公司雇用

antirez

全力開發(fā)

Redis

,無后顧之憂;這間公司也提供專門的

Redis

開發(fā)和

咨詢服務(wù)。阿里云、

云、Amazon、

RedisLab

等公司都提供了基于

Redis

的應(yīng)用服務(wù)。小象科技讓你的數(shù)據(jù)產(chǎn)生價值廣泛的使用使用

Redis

用戶時間線(user

timeline)。StackOverflow

使用Redis

來進(jìn)行緩存和消息分發(fā)。使用

Redis

來構(gòu)建關(guān)注模型(

follow

model)和圖譜(interest

graph)。Flickr

使用

Redis來構(gòu)建隊列。使用

Redis

作為持久化的鍵值對數(shù)據(jù)庫,并使用

Resque

來實現(xiàn)消息隊列。使用

Redis

來實現(xiàn)計數(shù)器、反向索引、

榜、消息隊列,并

用戶關(guān)系。知乎使用Redis

來進(jìn)行計數(shù)、緩存、消息分發(fā)和任務(wù)調(diào)度。在課程的后續(xù)內(nèi)容中,也會使用Redis

來實現(xiàn)這里提到的一些功能。小象科技讓你的數(shù)據(jù)產(chǎn)生價值對Redis

的簡單介紹就到這接下來,讓來學(xué)習(xí)如何使用Redis

提供的各種數(shù)據(jù)結(jié)構(gòu)。小象科技讓你的數(shù)據(jù)產(chǎn)生價值參考資料Pivotal

公司對

antirez

的采訪,

溫馨提示

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

最新文檔

評論

0/150

提交評論