03.02 Redis學習手冊,從入門到精通(附贈redis學習電子書)

前言:

在過去的幾年中,NoSQL 數據庫一度成為高併發、海量數據存儲解決方案的代名詞,與之相應的產品也呈現出雨後春筍般的生機。然而在眾多產品中能夠脫穎而出的卻屈指可數,如 RedisMongoDB、BerkeleyDB 和 CouchDB 等。


Redis學習手冊,從入門到精通(附贈redis學習電子書)


Redis的優勢

1). 和其他 NoSQL 產品相比,Redis 的易用性極高,因此對於那些有類似產品使用經驗的開發者來說,一兩天,甚至是幾個小時之後就可以利用 Redis 來搭建自己的平臺了。

2). 在解決了很多通用性問題的同時,也為一些個性化問題提供了相關的解決方案,如索引引擎、統計排名、消息隊列服務等。


目前版本中redis存在的主要問題

1). 在官方版本中沒有提供 Windows 平臺的支持,已發佈的正式版本中只是支持類 Unix 和MacOSX 臺。

2). 沒有提供集群的支持,然而據官網所述,預計在 2.6 版本中會加入該特徵。

3). Publication/Subscription 功能中,如果 master 宕機,slave 無法自動提升為 master。


Redis 學習手冊(String 數據類型)

概述

字符串類型是 Redis 中最為基礎的數據存儲類型,它在 Redis 中是二進制安全的,這便意味著該類型可以接受任何格式的數據,如 JPEG 圖像數據或 Json 對象描述信息等。在 Redis 中字符串類型Value最多可以容納的數據長度是 512M。


Redis學習手冊,從入門到精通(附贈redis學習電子書)


Redis學習手冊,從入門到精通(附贈redis學習電子書)

由於內容過多,文末會分享出此電子書,需要的自取

Redis學習手冊,從入門到精通(附贈redis學習電子書)

Redis 學習手冊(List 數據類型)

概述

在 Redis 中,List 類型是按照插入順序排序的字符串鏈表。和數據結構中的普通鏈表一樣,我們可以在其頭部(left)和尾部(right)添加新的元素。在插入時,如果該鍵並不存在,Redis 將為該鍵創建一個新的鏈表。與此相反,如果鏈表中所有的元素均被移除,那麼該鍵也將會被從數據庫中刪除。List 中可以包含的最大元素數量是 4294967295。

從元素插入和刪除的效率視角來看,如果我們是在鏈表的兩頭插入或刪除元素,這將會是非常高效的操作,即使鏈表中已經存儲了百萬條記錄,該操作也可以在常量時間內完成。然而需要說明的是,如果元素插入或刪除操作是作用於鏈表中間,那將會是非常低效的。相信對於有良好數據結構基礎的開發者而言,這一點並不難理解


Redis學習手冊,從入門到精通(附贈redis學習電子書)


Redis學習手冊,從入門到精通(附贈redis學習電子書)


Redis學習手冊,從入門到精通(附贈redis學習電子書)

Redis 學習手冊(Set 數據類型)

概述

在 Redis 中,我們可以將 Set 類型看作為沒有排序的字符集合,和 List 類型一樣,我們也可以在該類型的數據值上執行添加、刪除或判斷某一元素是否存在等操作。需要說明的是,這些操作的時間複雜度為 O(1),即常量時間內完成次操作。Set 可包含的最大元素數量是 4294967295。和 List 類型不同的是,Set 集合中不允許出現重複的元素,這一點和 C++標準庫中的 set 容器是完全相同的。換句話說,如果多次添加相同元素,Set 中將僅保留該元素的一份拷貝。和 List 類型相比,Set

類型在功能上還存在著一個非常重要的特性,即在服務器端完成多個 Sets 之間的聚合計算操作,如unions、intersections 和 differences。由於這些操作均在服務端完成,因此效率極高,而且也節省了大量的網絡IO 開銷。


Redis學習手冊,從入門到精通(附贈redis學習電子書)

Redis 學習手冊(Hashes 數據類型)

概述

我們可以將 Redis 中的 Hashes 類型看成具有 String Key 和 String Value 的 map 容器。所以該類型非常適合於存儲值對象的信息。如 Username、Password 和 Age 等。如果 Hash 中包含很少的字段,那麼該類型的數據也將僅佔用很少的磁盤空間。每一個 Hash 可以存儲 4294967295 個鍵值對。


Redis學習手冊,從入門到精通(附贈redis學習電子書)


Redis學習手冊,從入門到精通(附贈redis學習電子書)

Redis 學習手冊(Sorted-Sets 數據類型)

概述

Sorted-Sets 和 Sets 類型極為相似,它們都是字符串的集合,都不允許重複的成員出現在一個 Set中。它們之間的主要差別是 Sorted-Sets 中的每一個成員都會有一個分數(score)與之關聯,Redis 正是通過分數來為集合中的成員進行從小到大的排序。然而需要額外指出的是,儘管 Sorted-Sets 中的成員必須是唯一的,但是分數(score)卻是可以重複的。

在 Sorted-Set 中添加、刪除或更新一個成員都是非常快速的操作,其時間複雜度為集合中成員數量的對數。由於 Sorted-Sets 中的成員在集合中的位置是有序的,因此,即便是訪問位於集合中部的成員也仍然是非常高效的。事實上,Redis 所具有的這一特徵在很多其它類型的數據庫中是很難實現的,換句話說,在該點上要想達到和 Redis 同樣的高效,在其它數據庫中進行建模是非常困難的


Redis學習手冊,從入門到精通(附贈redis學習電子書)


Redis學習手冊,從入門到精通(附贈redis學習電子書)


總結:

由於篇幅限制剩下的一些知識點我就不一一列舉出來了,需要這份電子書的朋友自取哦

領取方式,私信我【資料】即可領取


Redis學習手冊,從入門到精通(附贈redis學習電子書)


分享到:


相關文章: