Redis入門到超神 - 04 redis的5種數據結構
關于命令的具體用法推薦網站: Redis命令教程中文版
String 類型是 redis 中最基本的數據類型,一個 key 對應一個 value 。并且 String 類型是二進制安全的,意思是 redis 的 String 可以包含任何數據。例如數字,字符串,jpg圖片或者序列化的對象。
常用命令:get ,set ,del ,incr ,decr,getset,incrby 等。
應用場景:
熱點數據,常用數據,結果不經常變動數據緩存;
計數器,用戶數,pv/uv等。
session,比如 spring session + redis 實現 session 共享。
List 即鏈表(redis 使用雙端鏈表實現的 List),它是有序的,value可以重復,可以通過下標取出對應的value值,左右兩邊都能進行插入和刪除數據。List 的另一個應用就是消息隊列,可以利用 List 的 PUSH 操作,將任務存在 List 中,然后工作線程再用 POP 操作將任務取出進行執行。
一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。
常用命令:linsert,llen,lpop,lpush,lrem,rpop,rpush等。
應用場景:
微博timeline
消息隊列
Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用于存儲對象。它是一個Mapmap,指值本身又是一種鍵值對結構,如 value={{field1,value1},…fieldN,valueN}}。
Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)。
常用命令:hexists,hget,hgetall,hdel,hlen,hkeys等等。
應用場景:緩存用戶信息,等。
集合類型用來保存多個字符串的元素,集合中沒有重復的元素;集合中的元素是無序的;不能通過索引下標獲取元素;支持集合間的操作,例如多個集合取交集、并集、差集。
Redis 中 集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
常用命令:sadd 、srem、scard、smembers、sismember等。
應用場景:共同好友,共同愛好,用戶打標簽等。
和Sets相比,Sorted Sets是將 Set 中的元素增加了一個權重參數 score,使得集合中的元素能夠按 score 進行有序排列。有序集合中的元素不可以重復,但是score 分數 可以重復。
常用命令:zadd,zcard, zrange,zscore,zrange等。
應用場景:各種排行榜,例如數排行,關注數排行,等等。
Redis 數據結構
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。