Redis常見資料結構以及使用場景 微博 分析

2021-09-25 21:35:45 字數 1179 閱讀 7880

1. string

常用命令: set,get,decr,incr,mget 等。

string資料結構是簡單的key-value型別,value其實不僅可以是string,也可以是數字。常規key-value快取應用;

常規計數:微博數,粉絲數等。

2.hash

常用命令: hget,hset,hgetall 等。

hash 是乙個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件,後續操作的時候,你可以直接僅

僅修改這個物件中的某個欄位的值。比如我們可以hash資料結構來儲存使用者資訊,商品資訊等等。

3.list

常用命令: lpush,rpush,lpop,rpop,lrange等。

list 就是鍊錶

,redis list 的應用場景非常多,也是redis最重要的資料結構之一,比如微博的關注列表,粉絲列表,

訊息列表等功能都可以用redis的 list 結構來實現。

redis list 的實現為乙個雙向鍊錶,即可以支援反向查詢和遍歷,更方便操作,不過帶來了部分額外的記憶體開銷。

另外可以通過 lrange 命令,就是從某個元素開始讀取多少個元素,可以基於 list 實現分頁查詢,這個很棒的乙個功

能,基於 redis 實現簡單的高效能分頁,可以做類似微博那種下拉不斷分頁的東西(一頁一頁的往下走),效能高。

4.set

常用命令: sadd,spop,smembers,sunion 等

set 對外提供的功能與list類似是乙個列表的功能,特殊之處在於 set 是可以自動排重的。

當你需要儲存乙個列表資料,又不希望出現重複資料時,set是乙個很好的選擇,並且set提供了判斷某個成員是否在

乙個set集合內的重要介面,這個也是list所不能提供的。可以基於 set 輕易實現交集、並集、差集的操作。

比如:在微博應用中,可以將乙個使用者所有的關注人存在乙個集合中,將其所有粉絲存在乙個集合。redis可以非常

方便的實現如共同關注、共同粉絲、共同喜好等功能。這個過程也就是求交集的過程。

常見資料結構

陣列 array 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列...

常見資料結構對比

最近看一本講程式設計藝術的書,裡面提了個問題 常見資料結構有哪些?以前都是用到什麼資料結構,去查相應資料,一直沒仔細想過這個問題,一時心血來潮,決定做個 總結下幾種資料結構的特點。如果哪位大神發現了錯誤,請通知小弟一聲,小弟馬上修改,謝謝。名稱 描述隨機訪問時間複雜度 特點優點 缺點陣列 資料型別的...

演算法常見資料結構

array 陣列最簡單而且應用最廣泛的資料結構之一.特性 使用連續的記憶體來儲存,陣列中的所有元素必須是相同的型別或型別的衍生 同質資料結構 元素可以通過下標直接訪問 linkedlist 鍊錶,線性表的一種,最基本,最簡單,也最為常用的資料結構.特性 元素之間的關係是一對一的關係 除了第乙個和最後...