少量數(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命令的介紹以及使用和注意事項會在后面的文章中逐一詳細說明。