redis入門之數據結構(二)

Redis 數據類型

Redis 不僅僅是簡單的 key-value 存儲器,同時也是一種 data structures server。傳統的 key-value 是指支持使用一個 key 字符串來索引 value 字符串的存儲,而 Redis 中,value 不僅僅支持字符串,還支持更多的複雜結構,包括列表、集合、哈希表等。

strings

字符串是最基本、最常用的Redis值類型
Redis 字符串是二進制安全的,這意味着一個 Redis 字符串能包含任意類型的數據,例如: 一張經過 base64 編碼的圖片或者一個序列化的 Ruby 對象。通過這樣的方式,Redis 的字符串可以支持任意形式的數據,但是對於過大的文件不適合存入 redis,一方面系統內存有限,另外一方面字符串類型的值最多能存儲 512M 字節的內容。
redis-cli strings 基本操作:

  • set key value [EX seconds] [PX milliseconds] [NX|XX] 添加一個key-value數據(NX: set 命令只有在沒有相同 key 的情況下成功;XX:在有相同 key 值的情況下成功)
  • get key 獲取key對應的value
  • incr key key對應的值+1
  • decr key key對應的值-1
  • incrby/decrby key increment/decrement key對應的值+/- n
  • mset key value [key value …] 一次性完成多個key-value的對應關係
  • mget key [key …] 一次性獲取多個key的值,返回value數組
    在這裏插入圖片描述

lists

Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊),lpush 命令插入一個新的元素到頭部,而 rpush 命令插入一個新元素到尾部。當這兩個操作中的任一操作在一個空的 Key 上執行時就會創建一個新的列表。相似的,如果一個列表操作清空一個列表,那麼對應的 key 將被從 key 空間刪除。
push 一類的命令的返回值爲 list 的長度。

  1. redis-cli lists 基本操作:
  • lpush key value [values …] 往列表頭部(左邊)插入數據,結果爲倒序列表
  • lrange key start stop 0表示 list 開頭第一個,-1 表示 list 的倒數第一個,即最後一個。-2 則是 list 的倒數第二個,以此類推。
  • rpush key value [values …] 往列表尾部(右邊)插入數據,結果爲正序列表
  • del key [key] 刪除一個key
  • lpop/rpop key 獲取頭部/尾部的第一個元素並刪除該元素
    一個列表最多可以包含 4294967295(2 的 32 次方減一)個元素,這意味着它可以容納海量的信息,最終瓶頸一般都取決於服務器內存大小。
    在這裏插入圖片描述
  1. 阻塞操作
  • blpop/brpop key [key …] timeout 阻塞獲取頭部/尾部的第一個元素並刪除該元素(list不存在時阻塞超時後返回nil)
    在這裏插入圖片描述
  1. 使用場景
    List 元素是線性有序的,適合用來存儲聊天記錄等順序結構的數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章