• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Docker的Redis緩存架構(gòu)的研究

      2015-11-13 12:08:56田玉靖張晨光任女爾
      電腦知識與技術(shù) 2015年23期
      關(guān)鍵詞:虛擬化分布式

      田玉靖++張晨光++任女爾

      摘要:Redis具備高速的讀寫能力,是一個典型的分布式讀寫分離模型。我們可以利用master插入數(shù)據(jù),slave提供檢索,從而有效減少單個機器的并發(fā)訪問數(shù)量?;诜植际侥P偷腞edis在帶來高擴展性、高容錯性的同時,無疑也加大了后期部署與運維的難度。該文進行Redis與Docker技術(shù)的結(jié)合,進行了基于Docker的Redis緩存架構(gòu)的研究,通過實驗,證明了基于容器的Docker虛擬化技術(shù),在快速部署、便捷運維方面具有較大的優(yōu)勢。

      關(guān)鍵詞:Redis;Docker;分布式;虛擬化

      中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2015)23-0056-03

      The Research on Redis Cache Architecture Based on Docker

      TIAN Yu-jing, ZHANG Chen-guang,REN Nv-er

      (China Automotive Technology & Research Center, Tianjin 300300, China)

      Abstract:Redis has the ability high speed reading and writing ,and it is a typical distributed reading and writing separated model.We can insert data in use of master and search data by slave,so as to reduce the number of concurrent access to a single machine. Redis, Distributed model, bring high scalability,high fault tolerance,meanwhile,it make deployment and maintain harder.This paper will combine Redis and docker, making a research about its architechure . By the research ,it prove that virtualization technology depending on docker has the advantage in deployment and crossing platform.

      Key words: Redis; Docker; distribution; virtualization

      身處云計算迅猛發(fā)展浪潮之中,網(wǎng)絡(luò)用戶數(shù)急速增長,世界各行各界致力于信息化、自動化、大數(shù)據(jù)化建設(shè)中。如今系統(tǒng)應(yīng)用與日俱增,負載壓力問題層出不窮,高負荷量是當前面臨的極大問題之一 [1]。要讓服務(wù)器快速響應(yīng)用戶并承受越來越大的負荷量,高速緩存Redis不失為一個好的選擇。同時,內(nèi)存數(shù)據(jù)庫局限于內(nèi)存的容量限制,基于分布式模型的Redis緩存解決了該問題。此外,PaaS(平臺即服務(wù))可提供用戶環(huán)境搭建、部署、運行時的服務(wù)器等平臺,軟件開發(fā)人員和運維人員可以從基礎(chǔ)設(shè)施日常管理、安全問題中解放出來,從而更加專注于業(yè)務(wù)開發(fā)和算法計算。在構(gòu)建PaaS平臺的工具和軟件日趨成熟的過程中,Docker以其基于容器的虛擬化技術(shù)獨樹一幟,影響了整個虛擬化技術(shù)的領(lǐng)域。而使用Docker作為部署項目的過程中,也正面臨著越來越多的應(yīng)用領(lǐng)域,基于Docker部署、運行分布式緩存架構(gòu)的研究也日趨重要。因此,本文研究基于Docker的Redis緩存架構(gòu),解決了在Docker目前使用過程中對Redis部署較為單一的情況,實現(xiàn)了快速部署運行Redis分布式緩存的方案[2]。

      1 Redis

      1.1 Redis概述

      Redis是一個由C編寫的 、鍵值的開源存儲系統(tǒng)。Redis的出現(xiàn),在某些方面完善了關(guān)系數(shù)據(jù)庫存儲的不足的問題 [3]。在內(nèi)存數(shù)據(jù)庫類型中有Redis和Memcached,它們都支持多種Value類型,但Redis支持存儲的值類型更加廣泛,Redis中值的類型對于字符串集合(有序和無序)、字符串列表及單純字符串,都可以做良好的支持。其次,Redis涵蓋了多種多樣的排序方式。它的另一個優(yōu)點是可以進行主服務(wù)器到從服務(wù)器的同步,這對于讀取操作的擴展以及數(shù)據(jù)冗余方面給予了很大的支持。Redis提供的語言版本多樣,更加快速,并且支持數(shù)據(jù)持久化,用戶使用起來十分方便[4]。

      1.2 Redis優(yōu)勢

      Redis主要包含的值類型除了較為常見的String類型外,還支持內(nèi)部實際存儲為HashMap的Hash類型、基于鏈表實現(xiàn)的List類型、基于HashMap的Set類型,以及支持排序的Sorted set類型等。因此,提供了非常方便和快速的使用方式[5]。此外,Redis的主要優(yōu)勢為以下幾點:

      1)速度較快:Redis的速度十分快,寫的速度可以達到驚人的八萬一千次每秒,而讀的速度也可以達到十一萬次每秒。

      2)支持豐富的數(shù)據(jù)類型:Redis支持更多的數(shù)據(jù)類型,例如像列表,集合,有序集合,散列數(shù)據(jù)類型。這就使得程序開發(fā)人員在遇到不同場景的時候有更多的選擇。

      3)操作的原子性:不同用戶訪問是否能夠保證數(shù)據(jù)的最新,這是用戶關(guān)注的一點,Redis的原子性恰恰可以解決這方面的問題[6]。

      4)Redis的多功能實用工具:應(yīng)用范圍廣,能使用在多個場景或?qū)嵗小?/p>

      除了上述的優(yōu)點外,Redis還具有很多其他優(yōu)勢功能。例如pubsub、聚合等。

      1.3 Redis分布式應(yīng)用

      Redis應(yīng)用的場景非常多,主要可以在緩存、計數(shù)、隊列、防止垃圾郵件、過期項目處理、按照用戶投票和時間排序等。而最重要的應(yīng)用場景自然是本文研究內(nèi)容之一Redis的緩存??偟膩碚f,Redis在很多場景下都是可以直接做為memcached的替代者,而在選擇數(shù)據(jù)類型相對廣泛的時候,Redis是可以作為一個重要的選擇的[7]。

      但是Redis的局限性在于內(nèi)存數(shù)據(jù)庫局限于內(nèi)存的容量大小。因此,部署分布式Redis為形勢所向。Redis本身為單點模式,本文處理Redis分布式實現(xiàn)采用一致性Hash原理,采用以key對應(yīng)Redis節(jié)點的方式作為master管理,并提供一定的臟數(shù)據(jù)節(jié)點處理功能,保證數(shù)據(jù)的完整性和正確性。

      2 Docker

      2.1 Docker概述

      Docker的主要面向?qū)ο笫窍到y(tǒng)的開發(fā)人員以及系統(tǒng)管理人員,它是一個優(yōu)秀的開源分布式框架。它主要由Docker Engine和Docker Hub兩個部分組成[8]。Docker類似于虛擬化服務(wù)器,它可以通過對操作系統(tǒng)虛擬化,使得一臺機器上面可以運行多個工作。Docker的最大優(yōu)點就是容器可以提供便攜性,不論是在虛擬機器還是物理服務(wù)器上運行容器。容器給大量部署應(yīng)用的需求提供了一個快速便捷的解決方案。Docker容器技術(shù)便于開發(fā)人員可以更簡單、更快速創(chuàng)建容器,在程序的部署以及應(yīng)用的維護管理更加便捷。

      2.2 Docker優(yōu)勢

      Docker作為開發(fā)者和系統(tǒng)管理員在應(yīng)用開發(fā)和部署中的開放式平臺,將Container技術(shù)融合并開源化,體現(xiàn)出便攜式,輕量級及高性能等諸多優(yōu)點[11]。

      1)擁有VM的有點的同時,Docker擁有自己更突出的地方。關(guān)鍵的一點是Docker更小、更快。在尺寸方面進行了優(yōu)化,相較于VM,更適合于云端的使用。

      2)Docker的開放性能夠降低QA和環(huán)境之間的耦合性,構(gòu)建、發(fā)布等操作都是十分簡潔的。

      3)Docker具有很好的沙盒式隔離性,將應(yīng)用和系統(tǒng)進行模塊式容器化管理,不需要添加任何操作系統(tǒng)。

      4)Docker的開源性 ,使得成本降低。適用于多平臺管理,統(tǒng)一化生產(chǎn),測試,發(fā)布流程。

      2.3 Docker原理

      Docker采用的架構(gòu)是客戶端/服務(wù)器形式的。從客戶端開始,以TCP/REST發(fā)送請求,然后Docker Host進行請求的收集,最終實現(xiàn)遠程控制。服務(wù)器端接收客戶端的請求是靠Docker Client進行的,然后做分布等處理,使得在一個機器上面可以同時運行多個工作任務(wù)。Docker daemon的運行方式是在宿主機的后臺,客戶端和daemon是可以進行直接交互的[9]。Docker的實現(xiàn)原理與其特性也是緊密關(guān)聯(lián)的,如Docker的交互式shell、日志記錄、資源隔離等,Docker的具體架構(gòu)圖如下:

      Docker宿主機與容器進行交互方式有共享目錄、橋接網(wǎng)絡(luò)、共享網(wǎng)絡(luò)、容器模式網(wǎng)絡(luò)、none無網(wǎng)絡(luò)等方式。其中,為了確保容器內(nèi)容的安全性,使用共享目錄的方式安裝軟件、配置log,進行數(shù)據(jù)的備份和物理存儲;使用容器模式在宿主機內(nèi)部進行溝通。在進行跨host宿主機的方式中,采用Docker的溝通方式、宿主機分管各個內(nèi)部容器的交互方式。

      3 基于Docker構(gòu)建Redis分布式緩存

      3.1 主體架構(gòu)思路

      Docker的運行方式主要以宿主機分管容器的方式,而Redis為主從式分布式方式,而Docker的容器和Redis的從節(jié)點服務(wù)器均具有可擴展性。本文的主要實驗思路是把Redis的環(huán)境整合到一個Image中,當Client需要搭建時,只需要打包好的Image,并進行環(huán)境變量的配置。如圖1所示為Redis的Docker化。

      整個架構(gòu)按照主從式結(jié)構(gòu)進行設(shè)計和部署,使用Docker的宿主機進行容器管理和Redis主服務(wù)master管理;通過Docker宿主機監(jiān)控配有Redis slave的容器進行啟動;在啟動的過程中,通過容器的啟動和擴展實現(xiàn)Redis的擴展。

      3.2 架構(gòu)實現(xiàn)流程

      1)安裝Docker。從Registory中下載ubuntu并且建立container。同時準備好Redis以及其他需要的軟件環(huán)境。

      2)通過創(chuàng)建安裝文件路徑,將壓縮包拷貝到主機host的目錄/app/software/下 ,以container共享文件加的方式運行container的bash,進入目錄后解壓縮,設(shè)置環(huán)境變量等步驟安裝JDK[10]。

      3)拷貝Redis安裝軟件至共享目錄。

      4)運行container,解壓縮$ tar xzf Redis-2.6.13.tar.gz。

      5)$ make、$ make install命令,在/usr/local/bin目錄下生成本個可執(zhí)行文件。

      6)將container內(nèi)部信息打包成Image。

      7)客戶端創(chuàng)建Master的container,同時根據(jù)需求創(chuàng)建Slave的container。

      8)Master的Container中Hosts指向?qū)?yīng)Slave,構(gòu)建二者的關(guān)聯(lián)。

      9)平臺運行,分別測試啟動1G、5G、10G、20G、50G、100G內(nèi)存的情況。

      3.3 Docker啟動與普通分布式Redis緩存分析

      在本架構(gòu)測試方案中,采用Docker啟動Redis和普通分布式Redis啟動進行分析對比。均采用16G內(nèi)存的虛擬ubuntu系統(tǒng)、從節(jié)點逐個啟動的方式作為測試。如下圖3所示,X軸代表Redis內(nèi)存大小,單位為G,Y軸代表配置時間。可以看出,當內(nèi)存數(shù)較小的時候,性能沒有較大的差異;當內(nèi)存數(shù)比較多、需要部署更多的機器時,Docker需要的啟動單位時間只是增加啟動容器的時間,而啟動容器一般在數(shù)秒即可完成,但是普通的分布式Redis啟動則需要逐一啟動所有的ubuntu虛擬機。也就是說,部署的節(jié)點數(shù)越多,Docker也就越便捷。

      除此以外,由于Docker容器模式的網(wǎng)絡(luò),致使在Redis持久化存儲上具有更便捷的交互模式和更高的安全可靠性。

      4 結(jié)束語

      對于應(yīng)用來講,Redis具有巨大的性能優(yōu)勢,但由于它是對內(nèi)存的一種管理和使用模式,在部署和維護方面并不方便;而Docker作為基于容器的虛擬化技術(shù),能夠快捷方便地管理內(nèi)存,并實現(xiàn)分布式并發(fā)處理。通過以上基于Docker的Redis緩存架構(gòu)的研究和實驗仿真,設(shè)計和解決兩者結(jié)合的架構(gòu)性問題,驗證了Docker做分布式緩存的高效性、高可用性。此外,還可以通過Docker API使用腳本調(diào)用的方式,進一步自動化、高效快速的部署、運維以及分級管理Redis緩存。該研究對Redis緩存的應(yīng)用性能以及其運維模式具有重要的實用價值。

      參考文獻:

      [1] James Turnbull. The Docker Book[M]. Amazon Digital Services, Inc, 2014.

      [2] Jang Seung-Ju. Design of the Remote Management System in the Windows Operating System[J]. International Journal of Computer Science and Network Security, 2011, 11(11): 38?42.

      [3] 楊保華, 戴王劍, 曹亞侖. Docker技術(shù)入門與實戰(zhàn)[M]. 北京: 機械工業(yè)出版社, 2014.

      [4] 陳如明.大數(shù)據(jù)時代的挑戰(zhàn),價值與應(yīng)對策略[J].移動通信,2012(17):14-15.

      [5] 鞠春利,劉印鋒.基于Docker的私有PaaS系統(tǒng)構(gòu)建[J].輕工科技,2014(10):80-83.

      [6] 張忠琳,黃炳良.基于openstack云平臺的docker應(yīng)用[J].軟件,2014 (11):73-76.

      [7] 王鑫濤.云管理平臺中虛擬網(wǎng)絡(luò)設(shè)計與實現(xiàn)[D]. 大連: 大連理工大學(xué),2013.

      [8] 劉高軍.基于Redis的海量小文件分布式存儲方法研究,2013(10).

      [9] 曾超宇.Redis在高速緩存系統(tǒng)中的應(yīng)用[J].微型機與應(yīng)用,2013(12).

      [10] 唐誠.Redis數(shù)據(jù)庫在微博系統(tǒng)中的實踐[J].廈門城市職業(yè)學(xué)院學(xué)報,2012(3).

      [11] 楊莎莎, 鄒華. 托管Paas平臺安全容器的設(shè)計與實現(xiàn)[J]. 軟件, 2012, 33(12): 1-5.

      猜你喜歡
      虛擬化分布式
      對基于Docker的虛擬化技術(shù)的幾點探討
      電子制作(2018年14期)2018-08-21 01:38:20
      虛擬化技術(shù)在CTC/TDCS系統(tǒng)中的應(yīng)用研究
      分布式光伏發(fā)展的四大矛盾
      能源(2017年7期)2018-01-19 05:05:03
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      虛擬化技術(shù)在計算機技術(shù)創(chuàng)造中的應(yīng)用
      電子測試(2017年11期)2017-12-15 08:57:56
      基于預(yù)處理MUSIC算法的分布式陣列DOA估計
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      淺析虛擬化技術(shù)的安全保障
      電子制作(2017年7期)2017-06-05 09:36:13
      高速公路服務(wù)器虛擬化技術(shù)應(yīng)用與探討
      存儲虛擬化還有優(yōu)勢嗎?
      邛崃市| 咸宁市| 乌拉特前旗| 淮滨县| 礼泉县| 荃湾区| 突泉县| 黄平县| 澜沧| 仙游县| 美姑县| 永平县| 吉安县| 长宁区| 津市市| 开江县| 漳州市| 宜州市| 遂川县| 星子县| 白山市| 宁陕县| 桂林市| 五常市| 唐山市| 兴化市| 贺兰县| 普格县| 虹口区| 鹿邑县| 左贡县| 尼勒克县| 滨州市| 南华县| 阳原县| 德昌县| 太湖县| 荣昌县| 新余市| 库尔勒市| 白水县|