少量數(shù)據(jù)存儲、高速讀寫訪問是Redis最主要的應(yīng)用場景。

由表可以看出TRDB應(yīng)用業(yè)務(wù)范圍最廣,MongoDB組要應(yīng)用于互聯(lián)網(wǎng)的web業(yè)務(wù)應(yīng)用,而Redis只能解決Internet應(yīng)用環(huán)境下的特定應(yīng)用業(yè)務(wù)。雖然Redis的應(yīng)用范圍相對有些狹窄,但是在互聯(lián)網(wǎng)業(yè)務(wù)環(huán)境下的很多大型網(wǎng)站很需要它。
根據(jù)Redis官網(wǎng)介紹,Redis可以作為數(shù)據(jù)庫使用,也可以用戶緩存處理和消息傳遞處理。它支持的數(shù)據(jù)結(jié)構(gòu)有字符串(String)、列表(List)、哈希表(Hash)、集合(Set)、有序集合(Sorted Set)、位圖(Bitmap)、Hyperloglog和帶半徑查詢的地理空間(Geospatial)索引。
對于Redis的具體安裝大家可以自行去練習(xí)安裝,相信大家都有這個能力的。
安裝好Redis之后,在使用之前,需要注意幾點:①Redis對命令大小寫不敏感,ping、Ping是一個命令;②Redis對變量大小寫敏感,如Name、name是兩個變量。
一:Redis存儲模式
Redis數(shù)據(jù)庫數(shù)據(jù)的存儲模式,是基于鍵值Key-Value基本存儲原理的基礎(chǔ)上,再進行細化分類。
1.字符串-String
字符串是最簡單的數(shù)據(jù)結(jié)構(gòu),如下所示:
注意:鍵名要簡潔、易讀,方便維護;長度最大為512M,不易過長,太長會影響執(zhí)行效率。
2.列表-List
列表是由若干插入順序排序的字符串元素組成的集合,也可以理解為一個集合對象,在讀寫時只能從兩頭開始操作。數(shù)據(jù)結(jié)構(gòu)如下所示:
列表說明:①列表內(nèi)可以出現(xiàn)重復(fù)值,比如上圖中的值1001可以出現(xiàn)多個;②列表采用的是鏈表技術(shù)實現(xiàn),插入新值的時候,速度是非常快的;③列表適用于需要快速響應(yīng)的應(yīng)用場景,如:聊天記錄、博客評論等;④列表的有序排序是指按照插入順序排序。
3.集合(Set)
集合是指由不重復(fù)且無序的字符串元素構(gòu)成的一個整體。元素不重復(fù)意味著集合里的所有元素是唯一的,這也是和列表的主要區(qū)別之一。數(shù)據(jù)結(jié)構(gòu)如下所示:
注意以下幾點:①一個集合內(nèi)不能出現(xiàn)重復(fù)值;②一個集合內(nèi)的值是無序的,不排序;
4.散列表(Hash)
散列表又稱哈希表,可以存儲多個鍵值對的映射,是一種無序的數(shù)據(jù)集合。鍵必須是唯一的,不能重復(fù),而且必須為字符串型,值可以是字符串型也可以是數(shù)字型。所以Hash特別適用于存儲一個對象。
注意:①鍵的內(nèi)容不應(yīng)太長,避免占用過多內(nèi)存,影響執(zhí)行效率。②散列表更適合于小規(guī)模數(shù)據(jù)結(jié)構(gòu)對象的存儲及操作。
5.有序結(jié)合(Sorted Set)
有序集合和散列表一樣都是有鍵值對構(gòu)成的數(shù)據(jù)集合,主要區(qū)別是有序集合根據(jù)值進行自動排序,而散列表不排序;有序集合可以對值直接操作,散列表要通過鍵查找來獲取值。有序集合的鍵也必須是唯一的,值是可以重復(fù)的。
注意:①因為有序集合自動排序,所以在數(shù)據(jù)量多的情況下,檢索速度會比散列快;②有序集合支持大量的值更新;③有序集合的鍵又叫做成員(Member),值又叫做分值(Score)。
二、Redis命令
Redis數(shù)據(jù)庫命令分字符串、列表、集合、散列表、有序集合、發(fā)布訂閱(pub/sub)、連接(connection)、server腳本、鍵(Keys)、HyperLogLog、地理空間、事務(wù)(Transactions)、集群(Cluster),14大類200多種命令。
關(guān)于這些Redis命令的介紹以及使用和注意事項會在后面的文章中逐一詳細說明。