redis五種數據結構及使用場景


string(字符串)

  • 存儲最簡單的key-value結構。
  • value可以是字符串、整數或者浮點數。
  • 可以對整個字符串或者字符串的一部分執行操作;
  • 對整數和浮點數執行自增或者自減操作。

使用場景

  • 常規key-value緩存應用;

list(列表)

  • 一個鏈表,鏈表上的每個節點都包含了一個字符串,字符串可以重復
  • 可以從鏈表的兩端推入或者彈出元素;
  • 根據偏移量對鏈表進行修剪;
  • 讀取單個或多個元素;
  • 根據值查找或者移除元素。

使用場景

  • 最新消息排行等功能;
  • 消息隊列;
  • 關注列表,粉絲列表;

set(集合)

  • 包含字符串的無序收集器,並且被包含的每個字符串都是獨一無二,各不相同的,即不能重復
  • 可以添加、獲取、移除單個元素;
  • 檢查一個元素是否存在於集合中;
  • 計算交集、並集、差集;
  • 從集合里面隨機獲取元素。

使用場景

  • 共同好友,共同喜好,二度好友;
  • 統計網站訪問IP(利用唯一性,統計訪問網站的所有獨立IP);
  • 好友推薦(好友推薦時,根據tag求交集,大於某個閾值就可以推薦);

hash(散列)

  • 包含鍵值對的無序散列表,鍵不能重復
  • 可以添加、獲取、移除單個鍵值對;
  • 獲取所有鍵值對。

使用場景

  • 存儲用戶信息(能單獨修改用戶某一屬性信息);

zset(有序集合)

  • 有序集合的鍵被稱為成員,每個成員都是各不相同的
  • 而有序集合的值被稱為分值,分值必須為浮點數;
  • 有序集合是字符串成員與浮點數分值之間的有序映射,元素的排列順序由分值的大小決定;
  • 可以添加、獲取、刪除單個元素;
  • 根據分值范圍或者成員來獲取元素;
  • 有序集合是redis里面唯一一個既可以根據成員訪問元素(這一點和散列一樣),又可以根據分值以及分值的排列順序來訪問元素的結構;

使用場景

  • 排行版;
  • 帶權重的消息隊列;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM