自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

2020年適用于Linux的10個優(yōu)秀開源緩存工具

系統(tǒng) Linux
在本文中,我們將回顧一些用于在Linux中實現(xiàn)服務(wù)器端緩存的優(yōu)秀開源(應(yīng)用程序/數(shù)據(jù)庫緩存和緩存代理服務(wù)器)工具。

可靠的分布式計算系統(tǒng)和應(yīng)用程序已成為杰出業(yè)務(wù)的基石,尤其是在自動化和管理關(guān)鍵任務(wù)業(yè)務(wù)流程以及向客戶提供服務(wù)方面。作為這些系統(tǒng)和應(yīng)用程序的開發(fā)人員和系統(tǒng)管理員,您應(yīng)該提供各種信息技術(shù)(IT)解決方案,以確保您擁有最有效的系統(tǒng)。

這包括諸如為系統(tǒng)/應(yīng)用程序性能,可靠性,可用性和可伸縮性設(shè)計,測試和實施策略的任務(wù),以為最終用戶提供令人滿意的服務(wù)水平。緩存是您可以依賴的許多非?;镜行У膽?yīng)用程序交付技術(shù)之一。在進一步介紹之前,讓我們簡要地看一下什么是緩存,在何處和如何應(yīng)用緩存及其好處?

什么是緩存或內(nèi)容緩存?

緩存(或內(nèi)容緩存)是一種廣泛使用的技術(shù),用于將數(shù)據(jù)副本存儲在臨時存儲位置(也稱為緩存)中,因此與從原始存儲中檢索數(shù)據(jù)相比,可以輕松,快速地訪問數(shù)據(jù)。根據(jù)緩存的類型和目的,存儲在緩存中的數(shù)據(jù)可以包括文件或文件片段(例如HTML文件,腳本,圖像,文檔等),數(shù)據(jù)庫操作或記錄,API調(diào)用,DNS記錄等。

緩存可以采用硬件或軟件的形式?;谲浖木彺?這是本文的重點)可以在應(yīng)用程序堆棧的不同層上實現(xiàn)。

可以在客戶端(或應(yīng)用程序表示層)應(yīng)用緩存,例如,瀏覽器緩存或應(yīng)用程序緩存(或脫機模式)。大多數(shù)(如果不是全部)現(xiàn)代瀏覽器都附帶有HTTP緩存的實現(xiàn)。即在訪問web應(yīng)用程序時,使您能夠查看網(wǎng)站或應(yīng)用程序上的最新數(shù)據(jù)或內(nèi)容,而不是在瀏覽器中使用本地存儲的內(nèi)容的舊副本。

客戶端緩存的另一個示例是DNS緩存,它發(fā)生在操作系統(tǒng)(OS)級別。它是有關(guān)操作系統(tǒng)或Web瀏覽器以前的DNS查找信息的臨時存儲。

也可以通過代理在LAN或WAN中的網(wǎng)絡(luò)級別上實現(xiàn)緩存。這種緩存的一個常見示例是CDN(內(nèi)容交付網(wǎng)絡(luò)),它是Web代理服務(wù)器的全局分布式網(wǎng)絡(luò)。

第三,您還可以在源服務(wù)器或后端服務(wù)器上實現(xiàn)緩存。服務(wù)器級緩存有多種形式,包括:Web服務(wù)器緩存(用于緩存圖像,文檔,腳本等)。

  • 應(yīng)用程序緩存或存儲(用于從磁盤讀取文件,從其他服務(wù)或進程讀取數(shù)據(jù)或從API請求數(shù)據(jù)等)。
  • 數(shù)據(jù)庫緩存(提供對常用數(shù)據(jù)(例如請求的數(shù)據(jù)庫行,查詢結(jié)果和其他操作)的內(nèi)存訪問)。

請注意,緩存數(shù)據(jù)可以存儲在任何存儲系統(tǒng)中,包括數(shù)據(jù)庫,文件,系統(tǒng)內(nèi)存等,但是應(yīng)該是比主要源更快的介質(zhì)。在這方面,內(nèi)存中緩存是最有效且最常用的緩存形式。

為什么要使用緩存?

緩存具有許多優(yōu)點,包括:

  • 在數(shù)據(jù)庫級別,它將緩存數(shù)據(jù)的讀取性能提高到微秒。您還可以使用回寫式高速緩存來提高寫入性能,在這種情況下,數(shù)據(jù)以指定的間隔寫入內(nèi)存中,然后再寫入磁盤或主存儲中。但是它的數(shù)據(jù)完整性方面可能會帶來災(zāi)難性的影響。例如,當(dāng)系統(tǒng)在將數(shù)據(jù)提交到主存儲之前崩潰時。
  • 在應(yīng)用程序級別,緩存可以在應(yīng)用程序進程本身中存儲頻繁讀取的數(shù)據(jù),從而將數(shù)據(jù)查找時間從幾秒鐘減少到幾微秒,尤其是在網(wǎng)絡(luò)上。
  • 考慮到整個應(yīng)用程序和服務(wù)器的性能,緩存有助于減少服務(wù)器的負載,延遲和網(wǎng)絡(luò)帶寬,因為緩存的數(shù)據(jù)被提供給客戶端,從而提高了響應(yīng)時間和向客戶端的交付速度。
  • 緩存還允許內(nèi)容可用性(尤其是通過CDN),以及許多其他好處。

在本文中,我們將回顧一些用于在Linux中實現(xiàn)服務(wù)器端緩存的頂級開源(應(yīng)用程序/數(shù)據(jù)庫緩存和緩存代理服務(wù)器)工具。

1. Redis

Redis(完整的遠程字典服務(wù)器)是一種免費,開源,快速,高性能,靈活的分布式內(nèi)存計算系統(tǒng),可以從大多數(shù)(即使不是全部)編程語言中使用。

它是內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲,用作緩存引擎,內(nèi)存中的持久磁盤上數(shù)據(jù)庫和消息代理。盡管Redis在Linux(推薦的部署平臺)和OS X上進行了開發(fā)和測試,但Redis還可在其他POSIX系統(tǒng)(例如* BSD)中運行,而無需任何外部依賴。

Redis支持大量數(shù)據(jù)結(jié)構(gòu),例如字符串,哈希,列表,集合,排序集合,位圖,流等。這使程序員可以使用特定的數(shù)據(jù)結(jié)構(gòu)來解決特定的問題。它支持對其數(shù)據(jù)結(jié)構(gòu)進行自動操作,例如追加到字符串,將元素推送到列表,增加哈希值,計算集合交集等。

它的主要功能包括Redis主從復(fù)制(默認(rèn)情況下是異步的),使用Redis Sentinel提供的高可用性和自動故障轉(zhuǎn)移,Redis集群(您可以通過添加更多集群節(jié)點來水平擴展)和數(shù)據(jù)分區(qū)(在多個Redis實例之間分配數(shù)據(jù)) )。它還具有對事務(wù),Lua腳本,一系列持久性選項以及客戶端-服務(wù)器通信加密的支持。

作為一個內(nèi)存中但持久的磁盤數(shù)據(jù)庫,Redis在與內(nèi)存中數(shù)據(jù)集配合使用時表現(xiàn)最佳。但是,您可以將其與磁盤數(shù)據(jù)庫一起使用,例如MySQL,PostgreSQL等。例如,您可以在Redis中獲取大量寫操作的小數(shù)據(jù),并將其他數(shù)據(jù)塊保留在磁盤數(shù)據(jù)庫中。

Redis通過多種方式支持安全性:一種是使用“保護模式”功能來保護Redis實例不被外部網(wǎng)絡(luò)訪問。它還支持客戶端-服務(wù)器身份驗證(在服務(wù)器中配置密碼并在客戶端中提供密碼)和所有通信通道(例如,客戶端連接,復(fù)制鏈接和Redis Cluster總線協(xié)議等)上的TLS。

Redis有很多用例,包括數(shù)據(jù)庫緩存,全頁緩存,用戶會話數(shù)據(jù)管理,API響應(yīng)存儲,發(fā)布/訂閱消息傳遞系統(tǒng),消息隊列等等。這些可以應(yīng)用于游戲,社交網(wǎng)絡(luò)應(yīng)用程序,RSS提要,實時數(shù)據(jù)分析,用戶推薦等。

2. Memcached

Memcached是一個免費,開源,簡單但功能強大的分布式內(nèi)存對象緩存系統(tǒng)。它是內(nèi)存中的鍵值存儲區(qū),用于存儲小塊數(shù)據(jù),例如數(shù)據(jù)庫調(diào)用,API調(diào)用或頁面呈現(xiàn)的結(jié)果。它可以在類似Unix的操作系統(tǒng)(包括Linux和OS X)上運行,也可以在Microsoft Windows上運行。

作為開發(fā)人員工具,它旨在通過緩存內(nèi)容(默認(rèn)情況下為最近最少使用(LRU)緩存)來提高動態(tài)Web應(yīng)用程序的速度,從而減少磁盤上的數(shù)據(jù)庫負載–它充當(dāng)以下任務(wù)的短期內(nèi)存應(yīng)用程序。它提供了最流行的編程語言的API。

Memcached支持將字符串作為唯一的數(shù)據(jù)類型。它具有客戶端-服務(wù)器體系結(jié)構(gòu),其中一半邏輯發(fā)生在客戶端,另一半發(fā)生在服務(wù)器端。重要的是,客戶了解如何為項目選擇要寫入或讀取的服務(wù)器。此外,如果客戶端無法連接到服務(wù)器,則客戶端非常了解該怎么辦。

盡管它是一個分布式緩存系統(tǒng),因此支持群集,但Memcached服務(wù)器彼此斷開連接(即,它們彼此之間不知道)。這意味著沒有像Redis這樣的復(fù)制支持。他們還了解如何存儲和獲取項目,管理何時驅(qū)逐或重新使用內(nèi)存。您可以通過添加更多服務(wù)器來增加可用內(nèi)存。

從Memcached 1.5.13開始,它支持通過TLS進行身份驗證和加密,但是此功能仍處于試驗階段。

3. Apache Ignite

Apache Ignite是一個免費的開源、易于擴展的分布式鍵值存儲,緩存和多模型數(shù)據(jù)庫系統(tǒng),它提供了強大的處理API,可用于在分布式數(shù)據(jù)上進行計算。它也是一個內(nèi)存中的數(shù)據(jù)網(wǎng)格,可以在內(nèi)存中使用,也可以與Ignite本機持久性一起使用。它可以在類似UNIX的系統(tǒng)(例如Linux和Windows)上運行。

它具有多層存儲,完整的SQL支持和跨多個群集節(jié)點的ACID(原子性,一致性,隔離性,耐久性)事務(wù)(僅在鍵值A(chǔ)PI級別上受支持),共處一地處理和機器學(xué)習(xí)。它支持與任何第三方數(shù)據(jù)庫(包括任何RDBMS(例如MySQL,PostgreSQL,Oracle數(shù)據(jù)庫等)或NoSQL存儲)的自動集成。

重要的是要注意,盡管Ignite用作SQL數(shù)據(jù)存儲,但它并不完全是SQL數(shù)據(jù)庫。與傳統(tǒng)數(shù)據(jù)庫相比,它可以明顯地處理約束和索引。它支持主索引和輔助索引,但是只有主索引用于強制唯一性。此外,它不支持外鍵約束。

Ignite還通過允許您在服務(wù)器上啟用身份驗證并在客戶端上提供用戶憑據(jù)來支持安全性。還支持SSL套接字通信,以在所有Ignite節(jié)點之間提供安全連接。

Ignite有許多用例,包括緩存系統(tǒng),系統(tǒng)工作負載加速,實時數(shù)據(jù)處理和分析。它也可以用作以圖形為中心的平臺。

4. Couchbase Server

Couchbase Server還是一個開源,分布式,面向文檔的 NoSQL 數(shù)據(jù)庫管理系統(tǒng),以鍵-值格式將數(shù)據(jù)存儲為項目。它可以在Linux以及Windows和Mac OS X等其他操作系統(tǒng)上運行。它使用功能豐富,面向文檔的查詢語言稱為N1QL,該語言提供強大的查詢和索引服務(wù),以支持對數(shù)據(jù)的亞毫秒級操作。

它的顯著特征是具有托管緩存的快速鍵值存儲,專用索引器,強大的查詢引擎,橫向擴展體系結(jié)構(gòu)(多維擴展),大數(shù)據(jù)和SQL集成,全棧安全性和高可用性。

Couchbase Server帶有原生多實例集群支持,集群管理器工具可協(xié)調(diào)所有節(jié)點活動,并僅向客戶端提供集群范圍的接口。重要的是,您可以根據(jù)需要添加,刪除或替換節(jié)點,而無需停機。它還支持跨集群節(jié)點的數(shù)據(jù)復(fù)制,跨數(shù)據(jù)中心的選擇性數(shù)據(jù)復(fù)制。

它使用專用的Couchbase服務(wù)器端口,不同的身份驗證機制(使用憑據(jù)或證書),基于角色的訪問控制(以檢查每個經(jīng)過身份驗證的用戶來檢查分配給他們的系統(tǒng)定義的角色),審核,日志和會話,通過TLS實現(xiàn)安全性。

它的用例包括統(tǒng)一的編程界面,全文本搜索,并行查詢處理,文檔管理和索引等等。它是專門為大型交互式Web,移動和IoT應(yīng)用程序提供低延遲數(shù)據(jù)管理而設(shè)計的。

5. Hazelcast IMDG

Hazelcast IMDG(內(nèi)存數(shù)據(jù)網(wǎng)格)是一種開源,輕量級,快速且可擴展的內(nèi)存數(shù)據(jù)網(wǎng)格中間件,可提供彈性可擴展的分布式內(nèi)存計算。Hazelcast IMDG還可以在Linux,Windows和Mac OS X以及安裝了Java的任何其他平臺上運行。它支持各種靈活的語言本機數(shù)據(jù)結(jié)構(gòu),例如Map,Set,List,MultiMap,RingBuffer和HyperLogLog。

Hazelcast是對等的,并支持簡單的可伸縮性,集群設(shè)置(具有用于收集統(tǒng)計信息,通過JMX協(xié)議進行監(jiān)視以及使用有用的實用程序管理集群的選項),分布式數(shù)據(jù)結(jié)構(gòu)和事件,數(shù)據(jù)分配以及事務(wù)的功能。這也是冗余的,因為它將每個數(shù)據(jù)條目的備份保留在多個成員上。要擴展群集,只需啟動另一個實例,數(shù)據(jù)和備份就會自動且均勻地平衡。

它提供了一組有用的API來訪問群集中的CPU,以實現(xiàn)最大處理速度。它還提供了來自Java的大量開發(fā)人員友好接口的分布式實現(xiàn),例如Map,Queue,ExecutorService,Lock和JCache。

它的安全功能包括群集成員和客戶端身份驗證,以及通過基于JAAS的安全功能對客戶端操作進行訪問控制檢查。它還允許攔截客戶端執(zhí)行的套接字連接和遠程操作,集群成員之間的套接字級別通信加密以及啟用SSL/TLS套接字通信。但是根據(jù)官方文檔,其中大多數(shù)安全功能都在企業(yè)版中提供。

最受歡迎的用例是分布式內(nèi)存緩存和數(shù)據(jù)存儲。但是,它也可以部署用于Web會話群集,NoSQL替換,并行處理,簡單的消息傳遞等等。

6. Mcrouter

Mcrouter是一個免費的開源Memcached協(xié)議路由器,用于擴展由Facebook開發(fā)和維護的Memcached部署。它具有Memcached ASCII協(xié)議,靈活的路由,多集群支持,多級緩存,連接池,多種哈希方案,前綴路由,復(fù)制池,生產(chǎn)流量影子,在線重新配置以及目標(biāo)運行狀況監(jiān)視/自動故障轉(zhuǎn)移的功能。

此外,它支持冷緩存預(yù)熱,豐富的統(tǒng)計信息和調(diào)試命令,可靠的刪除流服務(wù)質(zhì)量,較大的值,廣播操作,并具有IPv6和SSL支持。

它已在Facebook和Instagram中用作緩存基礎(chǔ)結(jié)構(gòu)的核心組件,高峰時每秒處理近50億個請求。

7. Varnish Cache

Varnish Cache是位于Web客戶端和原始服務(wù)器之間的開源靈活,現(xiàn)代且多功能的Web應(yīng)用程序加速器。它可以在所有現(xiàn)代Linux,F(xiàn)reeBSD和Solaris(僅x86)平臺上運行。它是一個出色的緩存引擎和內(nèi)容加速器,您可以將其部署在Web服務(wù)器(例如NGINX,Apache和許多其他服務(wù)器)的前面,以偵聽默認(rèn)的HTTP端口,以接收客戶端請求并將其轉(zhuǎn)發(fā)到Web服務(wù)器,并交付Web服務(wù)器響應(yīng)客戶端。

在客戶端和原始服務(wù)器之間充當(dāng)中間人的同時,Varnish Cache提供了許多好處,其基本要素是將Web內(nèi)容緩存在內(nèi)存中,以減輕Web服務(wù)器的負載并提高向客戶端的交付速度。

從客戶端收到HTTP請求后,它將請求轉(zhuǎn)發(fā)到后端Web服務(wù)器。Web服務(wù)器響應(yīng)后,Varnish將內(nèi)容緩存在內(nèi)存中,并將響應(yīng)傳遞給客戶端。當(dāng)客戶端請求相同的內(nèi)容時,Varnish將從緩存提升應(yīng)用程序響應(yīng)中提供該內(nèi)容。如果無法提供緩存中的內(nèi)容,則將請求轉(zhuǎn)發(fā)到后端,然后將響應(yīng)緩存并交付給客戶端。

Varnish具有VCL(Varnish配置語言,一種靈活的域特定語言),用于配置請求的處理方式以及其他功能,Varnish模塊(VMODS)是Varnish Cache的擴展。

在安全方面,Varnish Cache支持通過VMODS進行日志記錄,請求檢查以及限制,身份驗證和授權(quán),但缺少對SSL/TLS的原生支持。您可以使用Hitch或NGINX等SSL/TLS代理為Varnish Cache啟用HTTPS。

您還可以將Varnish Cache用作Web應(yīng)用程序防火墻,DDoS攻擊防御程序,熱鏈接保護程序,負載平衡器,集成點,單點登錄網(wǎng)關(guān),身份驗證和授權(quán)策略機制,用于不穩(wěn)定后端的快速修復(fù)程序以及HTTP請求路由器。

8. Squid緩存代理

Squid是另一個針對Linux的免費,開源,出色且廣泛使用的代理和緩存解決方案。它是功能豐富的Web代理緩存服務(wù)器軟件,可為流行的網(wǎng)絡(luò)協(xié)議(包括HTTP,HTTPS和FTP)提供代理和緩存服務(wù)。它還可以在其他UNIX平臺和Windows上運行。

就像Varnish Cache一樣,它接收來自客戶端的請求并將它們傳遞到指定的后端服務(wù)器。后端服務(wù)器響應(yīng)時,會將內(nèi)容的副本存儲在緩存中,然后將其傳遞給客戶端。將來對相同內(nèi)容的請求將從緩存中得到處理,從而將內(nèi)容更快地傳遞到客戶端。因此,它可以優(yōu)化客戶端和服務(wù)器之間的數(shù)據(jù)流以提高性能,并緩存常用內(nèi)容以減少網(wǎng)絡(luò)流量并節(jié)省帶寬。

Squid具有一些功能,例如通過代理服務(wù)器的相互通信的層次結(jié)構(gòu)分配負載,生成有關(guān)Web使用模式的數(shù)據(jù)(例如,有關(guān)訪問量最大的站點的統(tǒng)計信息),使您能夠分析,捕獲,阻止,替換或修改代理的消息。

它還支持安全功能,例如豐富的訪問控制,授權(quán)和身份驗證,SSL/TLS支持以及活動日志記錄。

9. NGINX

NGINX(發(fā)音為Engine-X)是一種開放源代碼,高性能,功能齊全且非常流行的整合解決方案,用于設(shè)置Web基礎(chǔ)結(jié)構(gòu)。它是HTTP服務(wù)器,反向代理服務(wù)器,郵件代理服務(wù)器和通用TCP/UDP代理服務(wù)器。

NGINX提供基本的緩存功能,其中緩存的內(nèi)容存儲在磁盤上的持久性緩存中。NGINX中有關(guān)內(nèi)容緩存的有趣之處在于,當(dāng)它無法從源服務(wù)器獲取新鮮內(nèi)容時,可以對其進行配置以從其緩存中傳遞陳舊的內(nèi)容。

NGINX提供了多種安全功能來保護您的Web系統(tǒng),包括SSL終止,使用HTTP基本身份驗證限制訪問,基于子請求結(jié)果的身份驗證,JWT身份驗證,限制對代理HTTP資源的訪問,按地理位置限制的訪問,以及更多。

它通常被部署為應(yīng)用程序堆棧中的反向代理,負載平衡器,SSL終結(jié)器/安全網(wǎng)關(guān),應(yīng)用程序加速器/內(nèi)容緩存和API網(wǎng)關(guān)。它還用于流媒體。

10. Apache Traffic Server

最后但也重要的一點是,我們有Apache Traffic Server,這是一種開源,快速,可擴展且可擴展的緩存代理服務(wù)器,支持HTTP/1.1和HTTP/2.0。它旨在通過為企業(yè),ISP(Internet服務(wù)器提供商),骨干網(wǎng)提供商等在網(wǎng)絡(luò)邊緣緩存經(jīng)常訪問的內(nèi)容來提高網(wǎng)絡(luò)效率和性能。

它支持HTTP/HTTPS通信的正向和反向代理。它還可以配置為同時以一種或兩種模式運行。它具有持久性緩存,插件API;支持ICP(Internet緩存協(xié)議),ESI(Edge Side Includes);Keep-Alive等。

在安全性方面,Traffic Server支持控制客戶端訪問,方法是允許您配置允許使用代理緩存的客戶端,客戶端與自身之間以及自身與原始服務(wù)器之間的連接的SSL終止。它還通過插件支持身份驗證和基本授權(quán),記錄(接收到的每個請求以及檢測到的每個錯誤)以及進行監(jiān)視。

Traffic Server可用作Web代理緩存,正向代理,反向代理,透明代理,負載均衡器或在緩存層次結(jié)構(gòu)中使用。

總結(jié)

緩存是最有用和歷史悠久的Web內(nèi)容交付技術(shù)之一,其主要目的是提高網(wǎng)站或應(yīng)用程序的速度。

 

責(zé)任編輯:趙寧寧 來源: Linux公社
相關(guān)推薦

2018-11-13 09:00:00

2024-10-17 10:51:33

2023-07-06 21:58:43

LinuxPDF編輯器

2021-12-13 12:56:26

Linux瀏覽器

2018-11-12 11:50:10

開源發(fā)票工具Web

2018-06-13 09:00:00

2023-12-14 17:21:29

2019-05-24 10:00:13

Windows 10PCadblocker

2022-04-04 18:58:59

殺毒軟件Linux惡意軟件

2011-05-13 09:56:23

Ubuntu 11.0

2022-03-21 09:25:50

Kubernetes開源DevSecOps

2021-03-18 10:46:00

Linux監(jiān)控工具命令

2020-03-13 10:46:35

數(shù)據(jù)分析商業(yè)智能BI

2023-02-15 16:31:08

Linux自動化編排工具

2019-03-06 09:20:25

Windows 10PC逃脫游戲

2023-08-09 13:46:39

2023-05-25 18:05:59

LinuxWayland軟件

2018-07-30 13:36:13

MacO開源應(yīng)用程序

2020-07-27 08:19:11

開發(fā)工具數(shù)據(jù)庫

2019-03-25 21:12:06

Linux命令行下載加速器
點贊
收藏

51CTO技術(shù)棧公眾號