Redis 之數據結構

Redis 之數據結構

字符串(String)

  1. 字符串是redis最簡單的數據類型。字符串是二進制安全的,所以Redis字符串能包含任意類型的數據。 例如:JPGE圖片、序列化Ruby對象。
  2. 一個字符串最多能存儲512M字節內容 ·利用INCR命令簇(incr decr incrby)來把字符串當做院子計數器。
  3. 使用Append命令在字符串後添加內容。 ·使用GETRANGE和SETRANGE命令來範圍訪問(時間複雜度 0(N) ,0開始,-1末位。
  4. 在小空間裏編碼大量數據,或者使用getbit和setbit 創建bloom過濾器

set stringtestkey “hello world hello redis” #OK

getrange stringtestkey 0 1 #”he”

getrange stringtestkey -5 -1 #”redis”

getrange stringtestkey 10 100 #”hello redis”

setrange stringtestkey 23 “test” #”hello world hello redistest”

setrange keybu0 2 “test” #”\x00\x00test”

列表(List)

  1. Redis列表是簡單的字符串列表,按插入順序排序。可以從列表頭部(左邊)或者尾部(右邊)添加元素。
  2. lpush在頭部插入元素,rpush在尾部插入元素
  3. 一個列表最多可以包含2^(32-1)個元素,訪問頭部或者尾部很快,訪問表中間元素很慢
  4. Redis 列表可以處理一些有趣的事,例如:
    • 時間線 lpush存入,lrange取出最近插入條目
    • lpush ltrim創建和維護一個永遠不會超過指定元素數量數目的列表,同時記住最後N個元素
    • 待添加

集合(Sets)

  1. redis 集合是一個無序字符串集合。0(1)時間複雜度完成添加刪除測試元素是否存在
  2. Redis集合有唯一性特性,多次添加先相同元素最終只會存在一個元素 3.
  3. 一個Redis列表十分有趣的事是,它們支持一些服務端的命令從現有的集合出發去進行集合運算。 所以你可以在很短的時間內完成合並(union),求交(intersection), 找出不同元素的操作。
  4. 一個集合最多可以包含2^(32-1)個元素(4294967295,每個集合超過40億個元素)。
  5. 你可以用Redis集合做很多有趣的事,例如你可以:
    • 用集合跟蹤一個獨特的事。想要知道所有訪問某個博客文章的獨立IP?只要每次都用SADD來處理一個頁面訪問。那麼你可以肯定重複的IP是不會插入的。
    • Redis集合能很好的表示關係。你可以創建一個tagging系統,然後用集合來代表單個tag。接下來你可以用SADD命令把所有擁有tag的對象的所有ID添加進集合,這樣來表示這個特定的tag。如果你想要同時有3個不同tag的所有對象的所有ID,那麼你需要使用SINTER.
    • 使用SPOP或者SRANDMEMBER命令隨機地獲取元素。

哈希(Hash)

有序集合(Sorted Sets)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章