Redis常用資料型別及使用場景

2022-03-11 02:15:15 字數 2107 閱讀 3400

字串是最基本的一種redis值。redis字串是二進位制安全的,這意味著redis字串可以包含任何型別的資料,例如jpeg影象或序列化的ruby物件。字串的長度可以是最大512mb。

可以用redis中的字串做一些有趣的事情,例如:

redis列表是簡單的字串列表,按插入順序排序。可以將元素新增到redis列表中,在列表的頭部(左側)或尾部(右側)新增新元素。lpush命令在頭部插入乙個新元素,而rpush在尾部插入乙個新元素。當對空鍵執行其中乙個操作時,將建立乙個新列表。類似地,如果列表操作將清空列表,則從鍵空間中刪除該鍵。這些都是非常方便的語義,因為如果使用不存在的鍵作為引數進行呼叫,那麼所有列表命令的行為都與使用空列表呼叫它們時的行為完全相同。

列表操作和結果列表的一些示例:

lpush mylist a   # now the list is "a"

lpush mylist b # now the list is "b","a"

rpush mylist c # now the list is "b","a","c" (使用 rpush命令)

列表的最大長度是2^32 - 1個元素(4294967295,每個列表可以包含超過40億個元素)。從時間複雜性的角度來看,redis列表的主要特性是支援在頭和尾附近不斷地插入和刪除元素,即使插入了數百萬元素。訪問元素在列表的極端位置非常快,但是如果你試圖訪問乙個非常大的列表的中間位置,則速度會很慢,因為這是乙個o(n)操作。

可以用redis中的字串做一些有趣的事情,例如:

redis集合是字串的無序集合。可以在o(1)中新增、刪除和測試成員的存在性(無論集合中包含多少元素,時間都是常量)。redis集具有不允許重複成員的理想屬性。多次新增相同的元素將導致乙個集合具有此元素的單一副本。實際上,這意味著新增成員不需要檢查是否存在,然後新增操作。關於redis集合,它們支援從現有集合開始計算集合的許多伺服器端命令,因此可以在很短的時間內完成集合的並集、交集和差異。乙個集合的最大成員數是2^32 - 1(4294967295,每個集合的成員數超過40億)。

可以用redis集合做很多有趣的事情,例如:

redis集合很好地表示關係。可以使用redis建立乙個標記系統,使用乙個集合來表示每個標記。然後,可以使用sadd命令將具有給定標記的所有物件的所有id新增到表示該特定標記的集合中。也可以使用sinter命令返回交集成員集合。

可以使用集合使用spop或srandmember命令隨機提取元素。

redis雜湊是字串欄位和字串值之間的對映,因此它們是表示物件的最佳資料型別(例如,具有多個字段(如name、姓氏、年齡等)的使用者):

@cli

hmset user:1000 username antirez password p1pp0 age 34

hgetall user:1000

hset user:1000 password 12345

hgetall user:1000

與redis集合類似,redis排序集是字串的非重複集合。不同之處在於,排序集的每個成員都與分數相關,分數是用來對排序集進行排序的,從最小的分數到最大的分數。雖然成員是唯一的,分數可以重複。使用排序的集合,可以以一種非常快的方式(在與元素數量的對數成比例的時間內)新增、刪除或更新元素。可以非常快速地按分數或按級別(位置)獲取範圍。訪問排序集的中間也非常快,所以可以使用排序集作為乙個非重複元素的智慧型列表,在其中你可以快速訪問所需的一切:元素順序,快速存在測試,快速訪問中間元素!簡而言之,使用排序集,你可以完成許多效能優異的任務,這些任務在其他型別的資料庫中很難建模。

有了排序集,你可以:

排序集通常用於索引儲存在redis中的資料。例如,如果有許多表示使用者的雜湊,那麼可以使用乙個已排序的集合,其中的元素以使用者的年齡為得分,以使用者的id為值。因此,使用zrangebyscore檢索給定時間間隔的所有使用者既簡單又快速。

排序集可能是最先進的redis資料型別,所以花點時間檢查排序集命令的完整列表,以發現可以使用redis做什麼!

Redis資料型別及使用場景

wqtech閱讀 2936 摘要 redis相比其它的kv資料庫,其一大特點是支援豐富的資料型別.它一共支援5種資料型別,下面逐一介紹這5種資料型別及其使用場景.redis相比其它的kv資料庫,其一大特點是支援豐富的資料型別。它一共支援5種資料型別,下面逐一介紹這5種資料型別及其使用場景和內部實現方...

Redis資料型別及使用場景

redis支援常見的資料型別,現在是被廣泛用在各大公司的內部,它可以做的東西很多,不過要先了解下他提供的基本資料型別與常見操作。接下來一起看看把。最基礎的資料型別,首先key是字串型別,其它的資料型別都是在字串的基礎之上構建的。set命令 批量設定和獲取命令,在操作多個key的時候可以節省網路傳輸時...

Redis資料型別及使用場景

redis 除了這 5 種資料型別之外,還有 bitmaps hyperloglogs streams 等。這是最簡單的型別,就是普通的 set 和 get,做簡單的 kv 快取。set college szu 複製 這個是類似 map 的一種結構,這個一般就是可以將結構化的資料,比如乙個物件 前提...