文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.212432
中文引用格式: 劉世超,楊斌,劉衛(wèi)國. 高性能高可用Redis客戶端的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2022,48(1):46-52,58.
英文引用格式: Liu Shichao,Yang Bin,Liu Weiguo. Design and implementation of high-performance and high-availability redis client[J]. Application of Electronic Technique,2022,48(1):46-52,58.
0 引言
隨著互聯(lián)網(wǎng)飛速發(fā)展以及大規(guī)模應(yīng)用的不斷涌現(xiàn),目前已經(jīng)步入了大數(shù)據(jù)時代。非結(jié)構(gòu)化數(shù)據(jù)逐漸替代了傳統(tǒng)結(jié)構(gòu)化數(shù)據(jù)并迅速占據(jù)了主導(dǎo)地位,為了管理形式多樣的非結(jié)構(gòu)化數(shù)據(jù),涌現(xiàn)了諸如MongoDB[1]、InfluxDB[2]、Elasticsearch[3]等十分有代表性的數(shù)據(jù)庫。這些數(shù)據(jù)庫雖然針對非結(jié)構(gòu)化數(shù)據(jù)的存取做了很多優(yōu)化,但是受限于硬盤(Hard Disk Drive,HDD)等底層存儲介質(zhì),往往無法滿足高性能場景的需求。
為了提高性能,以Redis為代表的內(nèi)存數(shù)據(jù)庫應(yīng)運而生。Redis是一個非結(jié)構(gòu)化數(shù)據(jù)庫,支持使用非結(jié)構(gòu)化語言(Not-only Structured Query Language,NoSQL)查詢。同時,Redis通過I/O(Input/Output)多路復(fù)用和DRAM(Dynamic Random Access Memory)提供了高吞吐、高并發(fā)和低時延的服務(wù),在數(shù)據(jù)緩沖、消息隊列、Key-Value存儲等場景都發(fā)揮了重要的作用。
但是隨著大規(guī)模計算集群的算力逐漸增大,應(yīng)用的數(shù)據(jù)規(guī)模也隨之變大,計算和I/O之間的“存儲墻”也變得愈發(fā)明顯?,F(xiàn)有的Redis也遇到一些網(wǎng)絡(luò)和存儲方面的問題。因此如何改進Redis也受到了廣泛的重視,隨之出現(xiàn)了很多Redis優(yōu)化的相關(guān)工作,它們從各種角度對Redis服務(wù)端或客戶端做了改進。
本文詳細內(nèi)容請下載:http://ihrv.cn/resource/share/2000003907。
作者信息:
劉世超1,2,楊 斌1,2,劉衛(wèi)國1,2
(1.山東大學(xué) 軟件學(xué)院,山東 濟南250101;2.國家超級計算無錫中心,江蘇 無錫214072)