默認情況下,Redis是一個緩存存儲器,被調(diào)用作數(shù)據(jù)庫使用。它利用易失性內(nèi)存,可以為用戶提供完整的持久性選項和對其他數(shù)據(jù)類型的支持。
從前有一段時間,Redis是個全球流行的工具。對于這個曾經(jīng)橫行全球的緩存工具你了解多少,和我一起開啟一場關(guān)它的技巧和事實之旅吧。
1.持久性允許用戶將Redis視為合法的數(shù)據(jù)庫,而不是不穩(wěn)定的臨時緩存。如果使用類似的工具“Memcached”重啟,它將丟失相關(guān)信息,但Redis可以將數(shù)據(jù)無損保存并且保持完整。
2.Redis擁有使用所有流行語言開發(fā)的客戶端API:C、Ruby、Java、JavaScript和Python。
3.Redis版本2.0的發(fā)布提供了擴散數(shù)據(jù)的功能,應(yīng)用了訂閱/發(fā)布消息傳遞協(xié)議(Subscribe/Publish messagingprotocol),也就是pub-sub模型。
4.CPU性能不是Redis的最大障礙,它要么是內(nèi)存受限,要么是網(wǎng)絡(luò)受限。但是,如果出現(xiàn)這種情況,水平/垂直擴展有助于克服任何與CPU相關(guān)問題。
5.與MongoDB等傳統(tǒng)數(shù)據(jù)庫不同,Redis支持事務(wù)。
6.Redis的持久性和關(guān)系數(shù)據(jù)庫(RDB):以AOF方式按指定間隔(數(shù)據(jù)備份)對數(shù)據(jù)集進行時間點快照,記錄服務(wù)器接收到的每個寫入(write)操作。
7.Redis的快照或Redis后臺保存過程只有在服務(wù)器沒有后續(xù)執(zhí)行命令時才會介入,因此可保證任何在隨機存儲器(RAM)中報告為基元的指令在磁盤快照中,也被報告為基元。
8.如果您喜歡使用Java,可以使用“Jedis”,這是一個Java客戶機,可以將Java應(yīng)用程序與Redis連接起來。注意,一個單獨的“Jedis”實例不是線程安全的。為了避免這些問題,“JedisPool”出現(xiàn)了,它是一個線程安全的網(wǎng)絡(luò)連接池,默認最大為8。
9.Redis具有數(shù)據(jù)庫功能。即使與緩存的優(yōu)點結(jié)合起來,它的性能也非常好。事實上,如果不需要持久性,就可以暫時關(guān)閉,因為它也可用于緩存。
10.在數(shù)據(jù)總是留于內(nèi)存中這一方面,Redis極大地顯示了自己的性能。它超過常規(guī)數(shù)據(jù)庫的讀寫操作能力使開發(fā)人員著迷。
11.許多行業(yè)領(lǐng)先的公司都使用Redis,包括Twitter、Pinterest和Github,他們是Redis項目的早期采用者,就像DLT實驗室一樣。
12.Redis將數(shù)據(jù)存儲為鍵值對,其中某些類型的數(shù)據(jù)結(jié)構(gòu)充當鍵。此外,它還允許對象將其鍵和值的上限設(shè)置為512兆字節(jié)。這種鍵散列的系統(tǒng),可用于存儲鍵-值對,被稱為Redis哈希表。
13.Redis最多可以處理2個鍵,實際測試中,每個實例至少可以處理2.5億個鍵。換句話說,使用Redis的限制很可能是機器/基礎(chǔ)結(jié)構(gòu)中的可用內(nèi)存。
14.Redis里每個可能存在的數(shù)據(jù)結(jié)構(gòu)都可以容納2個元素,即hash、list、set和sorted set達到峰值時可以使用2個元素。
15.盡管如此,到目前為止Redis在最容易設(shè)置的軟件的排行中仍然位列第二,不要問第一是誰!
最后,友情奉送一個小提示,為了用更有效的分配方式實現(xiàn)Linux性能(這是Redis理想的配置方式):將overcommit_memory設(shè)置為1。
-
存儲器
+關(guān)注
關(guān)注
38文章
7492瀏覽量
163854 -
緩存
+關(guān)注
關(guān)注
1文章
240瀏覽量
26680 -
Redis
+關(guān)注
關(guān)注
0文章
376瀏覽量
10878
發(fā)布評論請先 登錄
相關(guān)推薦
評論