Redis學(xué)習(xí)與實踐之存儲模式和基本命令

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

TRDB MongoDB Redis比較

由表可以看出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),如下所示:

字符串結(jié)構(gòu)示意圖,值是二進制安全的,所以值可以是數(shù)字、文本、圖片、視頻等

注意:鍵名要簡潔、易讀,方便維護;長度最大為512M,不易過長,太長會影響執(zhí)行效率。

2.列表-List

列表是由若干插入順序排序的字符串元素組成的集合,也可以理解為一個集合對象,在讀寫時只能從兩頭開始操作。數(shù)據(jù)結(jié)構(gòu)如下所示:

列表結(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)如下所示:

集合結(jié)構(gòu)示意圖

注意以下幾點:①一個集合內(nèi)不能出現(xiàn)重復(fù)值;②一個集合內(nèi)的值是無序的,不排序;

4.散列表(Hash)

散列表又稱哈希表,可以存儲多個鍵值對的映射,是一種無序的數(shù)據(jù)集合。鍵必須是唯一的,不能重復(fù),而且必須為字符串型,值可以是字符串型也可以是數(shù)字型。所以Hash特別適用于存儲一個對象。

散列表結(jié)構(gòu)示意圖

注意:①鍵的內(nèi)容不應(yīng)太長,避免占用過多內(nèi)存,影響執(zhí)行效率。②散列表更適合于小規(guī)模數(shù)據(jù)結(jié)構(gòu)對象的存儲及操作。

5.有序結(jié)合(Sorted Set)

有序集合和散列表一樣都是有鍵值對構(gòu)成的數(shù)據(jù)集合,主要區(qū)別是有序集合根據(jù)值進行自動排序,而散列表不排序;有序集合可以對值直接操作,散列表要通過鍵查找來獲取值。有序集合的鍵也必須是唯一的,值是可以重復(fù)的。

有序集合結(jié)構(gòu)示意圖

注意:①因為有序集合自動排序,所以在數(shù)據(jù)量多的情況下,檢索速度會比散列快;②有序集合支持大量的值更新;③有序集合的鍵又叫做成員(Member),值又叫做分值(Score)。

二、Redis命令

Redis數(shù)據(jù)庫命令分字符串、列表、集合、散列表、有序集合、發(fā)布訂閱(pub/sub)、連接(connection)、server腳本、鍵(Keys)、HyperLogLog、地理空間、事務(wù)(Transactions)、集群(Cluster),14大類200多種命令。

關(guān)于這些Redis命令的介紹以及使用和注意事項會在后面的文章中逐一詳細說明。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在我年少的時候,總是想要追尋自由。我不像那些看起來離經(jīng)叛道的人,期待做出一些轟天動地的事情。我不想讓別人看出來。我...
    牧野之月閱讀 761評論 1 1
  • 我花了三天的時間,與你分享了幫助你從依賴期成長到獨立期,獲得個人成功的三個重要習(xí)慣,其實也是三個重要的“思維轉(zhuǎn)換”...
    莫小鵬閱讀 426評論 0 0

友情鏈接更多精彩內(nèi)容