這應該是應用最廣泛的了,簡單的 key-value 型別。value 不僅可以是 string,也可以是數字。還可以享受 redis 的定時持久化(可以選擇 rdb 模式或者 aof 模式),操作日誌及 replication 等功能。
利用 redis 提供的 set 資料結構,可以儲存一些集合性的資料。redis 非常人性化的為集合提供了求交集、並集、差集等操作。
set 和 string 是在廣告系統中使用最廣泛的redis資料結構。和sets相比,sorted sets是將 set 中的元素增加了乙個權重引數 score,使得集合中的元素能夠按 score 進行有序排列,比如乙個儲存全班同學成績的 sorted sets,其集合 value 可以是同學的學號,而 score 就可以是其考試得分,這樣在資料插入集合的時候,就已經進行了天然的排序。
網上的文章講到這裡的時候都會說redis的set提供了一些方便的交集、並集、差集的操作。但是實際上我們在生產環境的時候不會用這些操作,資料庫一般是系統壓垮的最後一根稻草,如果資料庫垮了,基本就是系統gg了。補救辦法基本沒有。所以,選型的時候能讓伺服器做的,就不會讓資料庫做,所以交集、並集、差集這些操作會放在伺服器的內部邏輯去做。如果伺服器撐不住,大不了就加機子嘛。
我們系統中,大多數時候是用key/value的結構。從某種意義上他們兩個在邏輯上可以實現等價。
key -> "value1,value2,value3,value4"第一種我們直接用string,只不過value的獲取完我們自己分割。用哪種還是看你們的業務場景。set的缺點是比string占用更多的空間;優點是天然的是value之間是不會重複的。key -> set(value1,value2,value3,value4)
我們線上使用的已經**的廣告不想讓使用者看到這個功能我們就用的是string,因為我們每次下發的廣告已經從邏輯上保證了不是重複的.
常見的資料結構有哪些
1.陣列 2.佇列 3.鍊錶 i.單鏈表 ii.雙向鍊錶 iii.迴圈鍊錶 4.樹5.雜湊表 6.堆7.棧 8.圖1 詳細說下幾個資料結構 陣列簡單 棧先進後出 佇列先進先出 煉表單鍊錶 是這樣乙個有序的結點序列,每個鍊錶元素既有指向下乙個元素的指標,又有指向前乙個元素的指標,其中每個結點都有兩種指...
常見的資料結構有哪些?
陣列 陣列是最常用的資料結構,陣列的特點是長度固定,可以用下標索引,並且所有的 元素的型別都是一致的。列表 列表和陣列很相似,只不過它的大小可以改變。列表一般都是通過乙個固定大小的 陣列來實現的,並且會在需要的時候自動調整大小。列表裡可以包含重複的元素。集合 集合和列表很相似,不過它不能放重複的元素...
基礎的資料結構有哪些?
資料結構是以某種形式將資料組織在一起的集合,不僅儲存資料,還支援訪問和處理資料的操作.基礎的資料結構有 線性表 陣列,鍊錶 棧與佇列,樹與二叉樹,圖等 氣泡排序的思想 每次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換位置。快速排序使用分治法策略來把乙個序列分為兩個子串行。步驟 從數列中挑出乙個...