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

萬萬沒想到,Redis多線程版本竟然比原生版本快那么多

存儲 存儲軟件 Redis
如果我告訴您有一個 Redis 的分支版本,它的性能比原生的 Redis 快 5 倍,而且延遲卻降低近 5 倍,你會不會想了解一下這個項目?

 如果我告訴您有一個 Redis 的分支版本,它的性能比原生的 Redis 快 5 倍,而且延遲卻降低近 5 倍,你會不會想了解一下這個項目?而如果您不再需要哨兵節點并且您的副本可以接受讀取和寫入,這將有可能使分片數量減少 10 倍,這樣對你的吸引力是不是更大了呢?

我說的這個分支版本,它其實是 Redis 的一個分叉版本,名叫 KeyDB 。KeyDB 是 Redis 開源的多線程分叉版本。本文我們將提供最新的基準測試結果,并討論更強大的 KeyDB 實例如何減少集群大小以及簡化堆棧。同時我們還將討論了多線程體系結構,并演練了如何利用它實現性能的提升。

為什么要取個新名字,為什么要做 Redis 的分叉?

憑借著我們不受限制的代碼庫開發能力,KeyDB 能夠在短時間內取得長足的進步,并且所走的道路將在未來幾個月內破壞整個數據庫格局。

關于為什么首先搞一個 Redis 分叉的原因,這是因為 KeyDB 和 Redis 在如何發展方面有不同的理念。我們認為易用性、高性能和“內置動力”的方法是創造良好用戶體驗的最佳方法。盡管我們非常尊重 Redis 維護者,但我們認為 Redis 的方法過于注重代碼的簡單性,而以犧牲用戶的便利性為代價。這導致經常需要借助外部組件和方案來解決很多常見問題。

由于存在意見分歧,因此適合 KeyDB 的功能可能不適用于 Redis。而做一個新的分叉版本可以允許我們探索這一新的開發路徑并實現可能永遠不會成為 Redis 一部分的功能。KeyDB 將與上游的 Redis 代碼變更保持同步,在適用的情況下,我們還給 Redis 提交錯誤修復和改進。我們希望這兩個項目能夠繼續發展并相互學習。

最新基準數據

KeyDB 于今年3月推出,盡管我們的性能有所提高,但我們仍然希望它能更快地發展。我們最新的基準測試數據顯示,KeyDB的單個實例的每秒操作數(圖范圍為53-5.49)比Redis(v5)的單個實例多5倍以上,而延遲(圖形范圍為4.6-5.1)近5倍:

 

萬萬沒想到,Redis多線程版本竟然比原生版本快那么多

 

 

萬萬沒想到,Redis多線程版本竟然比原生版本快那么多

 

多線程的優勢

增加 KeyDB 的單個實例/節點的功能可以減少分片的需要,并且可以大大減少數據移動的數量。您可能會問,與在單個節點上多線程化相比,在群集中運行許多Redis 節點是否可以獲得比單線程多線程更多的吞吐量?您可以像 Redis 一樣對 KeyDB 進行分片,這對數據庫進行水平擴展很有意義。但是,如果您可以選擇增加馬力而不購買第二輛車,那為什么不呢?除分片外,還能夠擴展節點的大小,為用戶增加了新的功能和選擇。這是 Redis 與 KeyDB 之間意見分歧的其中之一。這不僅是社區中的常見討論點,還是某些圈子中的爭論點。

因此,為了回答 “用 KeyDB 運行更多線程看起來像什么?” 這個問題,我們提供了一些基本數字,以便您對此問題有所了解。

以下是基準測試(操作/秒)與使用的線程數對應關系的圖表:

 

萬萬沒想到,Redis多線程版本竟然比原生版本快那么多

 

隨著分配更多資源給實例,您可以看到性能得到大幅提高。同時還可以可以將線程固定到某個CPU上以得到進一步的提升,但最適合您的選擇可能取決于您的設置。默認情況下,此選項是禁用的。

僅將一個線程分配給KeyDB,平均而言,與 Redis 的單個線程實例相比,它仍可保持約5%的性能提升。因此,即使添加了新功能并更改了體系結構,性能也沒有受到影響。

多線程架構

KeyDB 通過在多個線程上運行常規的 Redis 事件循環來工作。網絡 IO 和查詢解析是同時進行的。每個連接在 accept() 上分配一個線程。自旋鎖保護對核心哈希表的訪問。因為哈希表訪問非???,所以此鎖的爭用較低。事務在EXEC命令的持續時間內保持鎖定。模塊與GIL協同工作,而GIL僅在所有服務器線程都暫停時才獲取。這保持了模塊期望的原子性保證。

與大多數數據庫不同,核心數據結構是系統中最快的部分。查詢的大部分時間來自解析REPL協議并將數據復制到網絡或從網絡復制數據。

未來的工作包括允許在連接之后重新平衡與不同線程的連接,并允許多個讀取器同時訪問哈希表

進一步優化設置

此外,KeyDB 還提供了一些有助于簡化用戶體驗的功能。例如活動副本功能已在最新的穩定版本 5 中廣泛采用并在生產中使用。此功能使您能夠在兩個主節點彼此復制,同時接受讀取和寫入操作。而且不需要哨點節點來控制故障轉移。您將獲得很高的可用性,同時最大限度地利用資源。如果尚未平衡對副本節點的讀取,則可以使用此選項將吞吐量提高一倍。這意味著從簡單的 Redis 主副本設置轉移到使用 KeyDB 的多線程活動副本設置,可以將分片需求減少多達10倍。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2017-12-12 11:09:39

顯卡散熱CPU

2018-05-02 09:38:02

程序員代碼互聯網

2021-02-21 17:14:27

程序員技能開發者

2021-11-29 05:37:24

Windows Def操作系統微軟

2023-10-31 12:29:25

模型訓練

2021-08-12 06:52:02

谷歌面試ArrayList

2019-08-19 09:21:36

程序員Bug代碼

2012-12-28 13:47:36

Raspberry PGeek

2020-08-14 08:19:25

Shell命令行數據

2021-08-31 09:35:01

TCPIP漏洞

2015-07-15 13:00:31

英特爾開源

2019-12-09 10:13:20

HashMap選擇容量

2018-06-27 14:23:38

機器學習人工智能入門方法

2020-12-31 06:12:38

Siri Windows電腦

2024-01-04 12:33:17

ChatGPTAI視頻

2016-09-01 13:54:23

Google太空電梯懸滑板

2021-01-27 18:13:35

日志nginx信息

2020-06-08 08:38:24

可執行文件文件字符

2021-07-21 05:38:20

中國聯通攜號轉網移動

2019-04-28 14:14:48

爬蟲網絡特價機票
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美日韩一区二区三区在线 | 欧洲尺码日本国产精品 | 日本久久网站 | 在线观看视频一区 | 99亚洲 | 国外成人在线视频网站 | 国产精品久久二区 | 成人精品国产一区二区4080 | 国外成人免费视频 | 久久com| 亚洲激情在线 | 久久一级免费视频 | 99精品久久久久久久 | 伊人精品在线视频 | 午夜视频在线 | 欧美jizzhd精品欧美巨大免费 | 中文字幕一区二区视频 | 一区二区三区免费 | 国产激情91久久精品导航 | 日韩一区二区三区视频 | 欧美日韩精品在线免费观看 | 精品国产欧美 | 日韩www | 伊人网在线播放 | 成人a视频在线观看 | 亚洲精品久久久一区二区三区 | 国产精品久久久久久模特 | 亚洲欧美在线视频 | 激情网站| 国产精品一区二区av | 青久草视频 | 国产精品揄拍一区二区 | 四虎影院美女 | 国产精品永久久久久久久www | 亚洲日本免费 | 日韩精品av| 一级a爱片性色毛片免费 | 一级免费黄色 | 国产美女精品视频 | 精区3d动漫一品二品精区 | 欧美日韩在线精品 |