有過指令碼語言程式設計經驗的讀者對字典(或稱對映、關聯陣列)資料結構一定很熟悉,如代
碼dict[「key」]="value"中dict是乙個字典結構變數,字串"key"是鍵名,而"value"是鍵值,在字
典中我們可以獲取或設定鍵名對應的鍵值,也可以刪除乙個鍵。
redis是remote dictionary server(遠端字典伺服器)的縮寫,它以字典結構儲存資料,並允
許其他應用通過tcp協議讀寫字典中的內容。同大多數指令碼語言中的字典一樣,redis字典中
的鍵值除了可以是字串,還可以是其他資料型別。到目前為止redis支援的鍵值資料型別如
下redis資料庫中的所有資料都儲存在記憶體中。由於記憶體的讀寫速度遠快於硬碟,因此redis
在效能上對比其他基於硬碟儲存的資料庫有非常明顯的優勢,在一台普通的膝上型電腦
上,redis可以在一秒內讀寫超過十萬個鍵值。
將資料儲存在記憶體中也有問題,例如,程式退出後記憶體中的資料會丟失。不過 redis提供
了對持久化的支援,即將可以記憶體中的資料非同步寫入到硬碟中,同時不影響繼續提供服務。
redis雖然是作為資料庫開發的,但由於其提供了豐富的功能,越來越多的人將其用作緩
存、佇列系統等。redis可謂是名副其實的多面手。
redis可以為每個鍵設定生存時間(time to live,ttl),生存時間到期後鍵會自動被刪
除。這一功能配合出色的效能讓redis可以作為快取系統來使用,而且由於redis支援持久化和
豐富的資料型別,使其成為了另乙個非常流行的快取系統memcached的有力競爭者。
討論 關於redis和memcached優劣的討論一直是乙個熱門的話題。在效能上redis是
單執行緒模型,而memcached支援多執行緒,所以在多核伺服器上後者的效能更高一些。然
而,前面已經介紹過,redis的效能已經足夠優異,在絕大部分場合下其效能都不會成為瓶
頸。所以在使用時更應該關心的是二者在功能上的區別,如果需要用到高階的資料型別
或是持久化等功能,redis將會是memcached很好的替代品。
作為快取系統,redis還可以限定資料占用的最大記憶體空間,在資料達到空間限制後可以
按照一定的規則自動淘汰不需要的鍵。
除此之外,redis的列表型別鍵可以用來實現佇列,並且支援阻塞式讀取,可以很容易地
實現乙個高效能的優先順序佇列。同時在更高層面上,redis還支援「發布/訂閱」的訊息模式,可
以基於此構建聊天室等系統。
redis入門教程
Redis學習筆記 一
工作百無聊賴,準備把自己想學的東西挨個學一遍,最近突然發現如果你學了乙個東西,但是毫無記錄只是看了一些書的話,這樣過去後很快就忘記了。所以我覺得很必要採用一種方式把看到的東西記下來,這樣可以加深記憶,也可以在以後回顧的時候一眼看到一項技術中的重點,方便回顧和查詢。最近首先想學一下redis,因為專案...
redis學習筆記(一)
版本 4.0.2 安裝 yum install gcc c 若連線失敗,可能是linux未開啟ssh服務,開啟命令 需要root賬戶 如下 開啟服務 service sshd start 關閉防火牆 etc init.d iptables stop ps 此期間可能linux網路連線中斷,請注意 下...
redis學習筆記一
最近開始儲備一些知識點,以下為redis的學習筆記。簡介 remote dictionary server redis 是乙個由salvatore sanfilippo寫的key value儲存系統。redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日...