Redis簡介四

來源:互聯網
上載者:User

標籤:

一、.NET使用Redis

  和MongoDB一樣,在.NET中使用Redis其實也是使用第三方驅動,官網推薦的是使用ServiceStack.Redis(https://github.com/ServiceStack/ServiceStack.Redis)

  點擊下載壓縮包,解壓 ServiceStack.Redis-master.zip\ServiceStack.Redis-master\build\release\MonoDevelop  下的ServiceStack.Redis.zip 壓縮包會有4個dll,我們直接在項目中添加引用即可!

二、Redis資料類型

  Redis目前提供五種資料類型:string(字串)、list(鏈表)、Hash(雜湊)、set(集合)及zset(sorted set)  (有序集合)。

  1、String類型

  String是最常用的一種資料類型,普通的key/value儲存都可以歸為此類。一個Key對應一個Value,string類型是二進位安全的。Redis的string可以包含任何資料,比如jpg圖片(產生二進位)或者序列化的對象。

  2、Hash類型

  hash是一個string 類型的field和value的映射表。hash特別 適合儲存物件。相對於將對象的每個欄位存成單個string 類型。一個Object Storage Service在hash類型中會佔用更少的記憶體,並且可以更方便的存取整個對象。省記憶體的原因是建立一個hash對象時開始是用zipmap(又稱為small hash)來儲存的。這個zipmap其實並不是hash table,但是zipmap相比正常的hash實現可以節省不少hash本身需要的一些中繼資料存放區開銷。儘管zipmap的添加,刪除,尋找都是O(n),但是由於一般對象的field數量都不太多。所以使用zipmap也是很快的,也就是說添加刪除平均還是O(1)。如果field或者value的大小超出一定限制後,redis會在內部自動將zipmap替換成正常的hash實現. 這個限制可以在設定檔中指定。

  如。Redis的Hash實際是內部儲存的Value為一個HashMap,這個HashMap的key是成員的屬性名稱,value是屬性值,這樣對資料的修改和存取都可以直接通過其內部HashMap的Key(Redis裡稱內部HashMap的key為field), 也就是通過key(使用者ID) + field(屬性標籤) 就可以操作對應屬性資料了。

  3、List類型

  list是一個鏈表結構,主要功能是push,pop,擷取一個範圍的所有的值等,操作中key理解為鏈表名字。 Redis的list類型其實就是一個每個子項目都是string類型的雙向鏈表。我們可以通過push,pop操作從鏈表的頭部或者尾部添加刪除元素,這樣list既可以作為棧,又可以作為隊列。

  Redis list的實現為一個雙向鏈表,即可以支援反向尋找和遍曆,更方便操作,不過帶來了部分額外的記憶體開銷,Redis內部的很多實現,包括髮送緩衝隊列等也都是用的這個資料結構。

  4、Set類型

  在Redis中,我們可以將Set類型看作為沒有排序的字元集合,和List類型一樣,我們也可以在該類型的資料值上執行添加、刪除或判斷某一元素是否存在等操作。需要說明的是,這些操作的時間複雜度為O(1),即常量時間內完成次操作。Set可包含的最大元素數量是4294967295。
      和List類型不同的是,Set集合中不允許出現重複的元素,這一點和C++標準庫中的set容器是完全相同的。換句話說,如果多次添加相同元素,Set中將僅保留該元素的一份拷貝。和List類型相比,Set類型在功能上還存在著一個非常重要的特性,即在伺服器端完成多個Sets之間的彙總計算操作,如unions、intersections和differences。由於這些操作均在服務端完成,因此效率極高,而且也節省了大量的網路IO開銷。

  5、Sorted Set類型

  Sorted Set 是Set的一個升級版本,它在set的基礎上增加了一個順序的屬性,這一屬性在添加修改   .元素的時候可以指定,每次指定後,zset(表示有序集合)會自動重新按新的值調整順序。可以理解為有列的表,一列存 value,一列存順序。操作中key理解為zset的名字.

  應用情境:    

  Redis sorted set的使用情境與set類似,區別是set不是自動有序的,而sorted set可以通過使用者額外提供一個優先順序(score)的參數來為成員排序,並且是插入有序的,即自動排序。當你需要一個有序的並且不重複的集合列表,那麼可以選擇sorted set資料結構。

Redis簡介四

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.