redis 用intset 或hashtable 儲存set。如果元素都是整數型別,就用inset 儲存。
如果不是整數型別,就用hashtable(陣列+鍊錶的存來儲結構)。
問題:kv 怎麼儲存set 的元素?key 就是元素的值,value 為null。
如果元素個數超過512 個,也會用hashtable 儲存。
配置檔案redis.conf
set-max-intset-entries 512
127.0.0.1:6379> sadd iset 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> object encoding iset
"intset"
127.0.0.1:6379> sadd myset a b c d e f
(integer) 6
127.0.0.1:6379> object encoding myset
"hashtable"
redis的資料結構 儲存set
在redis中,我們可以將set型別看作為沒有排序的字元集合,和list型別一樣,我 們也可以在該型別的資料值上執行新增 刪除或判斷某一元素是否存在等操作。需要 說明的是,這些操作的時間是常量時間。set可包含的最大元素數是4294967295。和list型別不同的是,set集合中不允許出現重複的元...
Redis中的set儲存型別
在redis中,我們可以將set型別看作為沒有排序的字元集合,和list型別一樣,我們也可以在該型別的資料值上執行新增 刪除或判斷某一元素是否存在等操作。和list型別不同的是,set集合中不允許出現重複的元素,這一點和c 標準庫中的set容器是完全相同的。換句話說,如果多次新增相同元素,set中將...
redis的儲存結構
hash 是乙個string 型別的field 和value 的對映表。hash特別適合儲存物件,相對於將物件的每個欄位存成單個string型別。乙個物件儲存在hash型別中會占用更少的記憶體,並且可以更方便的訪問整個物件。我們簡單舉個例項來描述下hash的應用場景,比如我們要儲存乙個使用者資訊物件...