成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Redis混合存儲-冷熱數據識別與交換

存儲 存儲軟件 Redis
Redis混合存儲產品是阿里云自主研發的完全兼容Redis協議和特性的混合存儲產品。通過將部分冷數據存儲到磁盤,在保證絕大部分訪問性能不下降的基礎上,大大降低了用戶成本并突破了內存對Redis單實例數據量的限制。

背景

Redis混合存儲產品是阿里云自主研發的完全兼容Redis協議和特性的混合存儲產品。

通過將部分冷數據存儲到磁盤,在保證絕大部分訪問性能不下降的基礎上,大大降低了用戶成本并突破了內存對Redis單實例數據量的限制。

其中,對冷熱數據的識別和交換是混合存儲產品性能的關鍵因素。

冷熱數據定義

[[236951]]

在Redis混合存儲中,內存和磁盤的比例是用戶可以自由選擇的:

Redis混合存儲實例將所有的Key都認為是熱數據,以少量的內存為代價保證所有Key的訪問請求的性能是高效且一致的。而對于Value部分,在內存不足的情況下,實例本身會根據最近訪問時間,訪問頻度,Value大小等維度選取出部分value作為冷數據后臺異步存儲到磁盤上直到內存小于制定閾值為止。

在Redis混合存儲實例中,我們將所有的Key都認為是熱數據保存在內存中是出于以下兩點考慮:

  • Key的訪問頻度比Value要高很多。
  • 作為KV數據庫,通常的訪問請求都需要先查找Key確認Key是否存在,而要確認一個key不存在,就需要以某種形式檢查所有Key的集合。在內存中保留所有Key,可以保證key的查找速度與純內存版完全一致。
  • Key的大小占比很低。
  • 即使是普通字符串類型,通常的業務模型里面Value比Key要大幾倍。而對于Set,List,Hash等集合對象,所有成員加起來組成的Value更是比Key大了好幾個數量級。

因此,Redis混合存儲實例的適用場景主要有以下兩種:

  • 數據訪問不均勻,存在熱點數據;
  • 內存不足以放下所有數據,且Value較大(相對于Key而言)

冷熱數據識別

當內存不足時的情況下,實例會按照最近訪問時間,訪問頻度,value大小等維度計算出value的權重,將權重***的value存儲到磁盤上并從內存中刪除。

偽代碼如下:

理想的情況下,我們當然希望能夠準確的計算出當前最冷的value。然而,value的冷熱程度根據訪問情況動態變化的,每次都重新計算所有value的冷熱權重的時間消耗是完全不可接受的。

Redis本身在內存滿的情況下會根據用戶設置的淘汰策略淘汰數據,而熱數據從內存寫到磁盤也可以認為是一種“淘汰”的過程。從性能,準確率以及用戶理解程度考慮,我們在冷熱數據識別時采用和Redis類似的近似計算方法,支持多種策略, 通過隨機采樣小部分數據來降低CPU和內存消耗,通過eviction pool利用采樣歷史信息來輔助提高準確率。

上圖為不同版本和不同采樣樣本數目配置下,Redis近似淘汰算法的***率示意圖。淺灰色的點為被淘汰數據,灰色的點為未淘汰數據,綠色點為測試過程中新加入的數據。

冷熱數據交換

Redis混合存儲在冷熱數據交換過程在后臺IO線程中完成。

熱數據->冷數據

異步方式:

  1. 主線程在內存接近***值時,生成一系列數據換出任務;
  2. 后臺線程執行這些數據換出任務,執行完畢之后通知主線程;
  3. 主線程更新釋放內存中的value,更新內存中數據字典中的value為一個簡單的元信息;
  4. 同步方式:

如果寫入流量過大,異步方式來不及換出數據,導致內存超出***規格內存。主線程將直接執行數據換出任務,達到變相限流的目的。

冷數據->熱數據

異步方式:

  1. 主線程在執行命令前,先判斷命令涉及的value是否都在內存中;
  2. 如果不是,生成數據加載任務,掛起該客戶端,主線程繼續處理其他客戶端請求;
  3. 后臺線程執行數據加載任務,執行完畢后通知主線程;
  4. 主線程在內存中更新數據字典中的value,喚醒之前掛起的客戶端,處理其請求。
  5. 同步方式:

在Lua腳本,具體命令執行階段,如果發現有value存儲在磁盤上,主線程將直接執行數據加載任務,保證Lua腳本和命令的語義不變。

 

責任編輯:武曉燕 來源: Spark學習技巧
相關推薦

2022-07-04 15:03:24

財經支付數據庫存儲

2023-01-12 15:25:51

Curve數據存儲

2023-11-28 07:29:17

2017-11-02 10:23:48

冷熱分層存儲

2023-08-11 09:00:00

2024-01-15 16:51:03

Redis數據存儲

2022-03-03 09:51:11

RedisCouchbase數據存儲

2017-03-13 19:46:08

閃存存儲SSD

2017-03-08 14:36:17

全閃存混合存儲

2018-01-14 16:11:56

混合存儲陣列數據遷移

2023-11-20 08:44:18

數據序列化反序列化

2017-11-29 08:38:58

存儲陣列

2017-10-17 10:34:16

數據中心混合存儲

2018-01-15 08:47:42

戴爾EMC云存儲混合云

2016-06-07 16:43:57

云計算混合云

2015-11-05 16:08:18

數據中心節能降溫

2024-03-26 00:03:08

Redis數據RDB

2018-04-27 09:03:57

Redis數據存儲

2018-04-23 15:14:02

混合云云存儲公有云
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 无码日韩精品一区二区免费 | 欧美a级成人淫片免费看 | 久久久青草婷婷精品综合日韩 | 国产精品一区二区av | 欧美 日韩 国产 成人 在线 | 国产aa | 成人性视频免费网站 | 亚洲午夜精品一区二区三区他趣 | 福利社午夜影院 | 日韩一区二区三区视频 | 成人av网站在线观看 | 日韩欧美在线观看视频 | 国产亚洲一区二区三区 | 欧美乱淫视频 | 97日韩精品| www.久久精品 | 在线观看欧美日韩视频 | 欧美精品一区二区免费视频 | 欧美第一页 | 国产伦精品一区二区 | 国产在线中文字幕 | 在线播放国产一区二区三区 | 欧美色欧美亚洲另类七区 | 久久成人精品 | 国产十日韩十欧美 | 国产精品美女久久久久久久久久久 | 中文字幕免费在线 | 一区二区三区四区免费在线观看 | 亚洲欧美中文日韩在线v日本 | 亚洲精品视频在线观看视频 | 免费在线成人网 | 亚洲在线成人 | 成人在线电影网站 | 91精品久久久久久久久 | 天天看天天操 | 国产专区视频 | 精品少妇一区二区三区在线播放 | 亚洲激情一区二区 | 国产精品亚洲片在线播放 | 青青草综合 | 亚洲高清在线 |