Redis 資料型別

2021-10-08 19:22:48 字數 2417 閱讀 4237

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

字串值的最大長度為512 mb。

您可以使用redis中的字串來做許多有趣的事情,例如,您可以:

檢查所有可用的字串命令以獲取更多資訊,或閱讀redis資料型別簡介。

redis列表只是字串列表,按插入順序排序。可以將元素新增到redis列表中,從而將新元素推到列表的頭部(左側)或尾部(右側)。

所述lpush命令插入在頭部的新元素,而 rpush插入在尾部的新元素。針對空鍵執行此操作之一時,將建立乙個新列表。同樣,如果列表操作將清空列表,則從鍵空間中刪除鍵。這些是非常方便的語義,因為如果使用不存在的鍵作為引數呼叫,則所有list命令的行為都將與使用空列表呼叫時的行為完全相同。

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

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 was used this time)

乙個列表的最大長度為2的32次方 - 1元件(4294967295,超過4十億每列表中的元素)。

從時間複雜度的角度來看,redis列表的主要功能是支援恆定時間插入和刪除頭和尾附近的元素,即使有數百萬個插入項也是如此。在列表的極端附近,訪問元素的速度非常快,但是如果您嘗試訪問乙個很大的列表的中間位置,則訪問元素的速度會很慢,因為這是o(n)操作。

您可以使用redis lists做很多有趣的事情,例如,您可以:

請檢查列表上所有可用的命令以獲取更多資訊,或閱讀redis資料型別簡介。

redis集是字串的無序集合。可以在o(1)中新增,刪除和測試成員的存在(恆定時間,無論set中包含的元素數量如何)。

redis集具有不允許重複成員的理想屬性。多次新增同一元素將導致集合具有該元素的單個副本。實際上,這意味著新增成員不需要檢查是否存在然後進行新增操作。

關於redis集的乙個非常有趣的事情是,它們支援許多伺服器端命令來從現有集開始計算集,因此您可以在很短的時間內完成集的相交,交集,差集。

成員的一組最大數目是2的32次方 - 1(4294967295,超過4十億每成員集合)。

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

與往常一樣,檢視set命令的完整列表以獲取更多資訊,或閱讀redis資料型別的介紹。

redis雜湊是字串欄位和字串值之間的對映,因此它們是表示物件的理想資料型別(例如,具有多個字段(例如名稱,姓氏,年齡等)的user):

hmset user:1000 username antirez password p1pp0 age 34

hgetall user:1000

hset user:1000 password 12345

hgetall user:1000

具有幾個字段(其中幾個意味著最多一百個左右)的雜湊以占用很少空間的方式儲存,因此您可以在小型redis例項中儲存數百萬個物件。

儘管雜湊主要用於表示物件,但是它們能夠儲存許多元素,因此您也可以將雜湊用於許多其他任務。

每個雜湊最多可以儲存2 的32次方-1個字段-值對(超過40億)。

檢視hash命令的完整列表以獲取更多資訊,或閱讀redis資料型別簡介。

與redis集類似,redis排序集是非重複的string集合。區別在於,排序集的每個成員都與得分相關聯,該得分用於從最小得分到最大得分中獲取排序的排序集。雖然成員是唯一的,但分數可能會重複。

使用排序集,您可以以非常快的方式(在與元素數量的對數成比例的時間內)新增,刪除或更新元素。由於元素是按順序進行的,而不是隨後進行排序的,因此您還可以非常快速地按分數或按排名(位置)獲得範圍。訪問排序集的中間位置也非常快,因此您可以將排序集用作非重複元素的智慧型列表,從中可以快速訪問所需的所有內容:元素有序,快速存在測試,對中間元素的快速訪問!

簡而言之,使用排序集,您可以執行許多效能出色的任務,而這些任務實際上很難在其他型別的資料庫中建模。

使用排序集,您可以:

排序集通常用於索引儲存在redis中的資料。例如,如果您有許多代表使用者的雜湊,則可以使用乙個排序的集合,其中元素以使用者的年齡作為得分,而使用者的id作為值。因此,使用zrangebyscore檢索給定年齡段的所有使用者將非常簡單快捷。

sorted sets可能是最高端的redis資料型別,因此花一些時間檢查sorted set命令的完整列表,以發現可以使用redis做什麼!另外,您可能需要閱讀redis資料型別的介紹。

redis還支援點陣圖和hyperloglogs,它們實際上是基於string基本型別的資料型別,但是具有自己的語義。

請參閱redis資料型別簡介以獲取有關這些型別的資訊。

翻譯自:

redis資料型別

redis對比與memcached 最大的優勢就是支援更多靈活的資料結構,豐富的資料操作 redis現支援的資料型別有 字串,列表,集合,雜湊,有序集合 1.字串 普通資料型別 2.列表 簡單的字串列表,按照插入順序排序。你可以新增乙個元素到列表的頭部 左邊 或者尾部 右邊 適用於 對資料頭尾操作頻...

Redis 資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。string型別是二進位制安全的。意思是red...

Redis 資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。string型別是二進位制安全的。意思是red...