久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

適用于Linux的頂級開源緩存工具有哪些

141次閱讀
沒有評論

共計 6614 個字符,預計需要花費 17 分鐘才能閱讀完成。

本篇內容主要講解“適用于 Linux 的頂級開源緩存工具有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“適用于 Linux 的頂級開源緩存工具有哪些”吧!

什么是緩存或內容緩存?

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

緩存可以采用硬件或軟件的形式。基于軟件的緩存(這是本文的重點)可以在應用程序堆棧的不同層上實現。

緩存可以在客戶端側被施加(或在應用程序展現層)中,例如,瀏覽器高速緩存或高速緩存的應用程序(或離線模式)。大多數(如果不是全部)現代瀏覽器都附帶有 HTTP 緩存的實現。當您訪問 Web 應用程序以使您能夠查看網站或應用程序上的最新數據或內容,而不是瀏覽器使用本地存儲的內容的舊副本時,您可能已經聽說過流行的短語“清除緩存”。

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

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

第三,您還可以在源服務器或后端服務器上實現緩存。服務器級緩存有不同形式,包括:

Web 服務器緩存(用于緩存圖像,文檔,腳本等)。

應用程序緩存或記憶(用于從磁盤讀取文件,從其他服務或進程讀取數據或從 API 請求數據等)。

數據庫緩存(提供對常用數據(例如請求的數據庫行,查詢結果和其他操作)的內存訪問)。

請注意,緩存數據可以存儲在任何存儲系統中,包括數據庫,文件,系統內存等,但是應該是比主要源更快的介質。在這方面,內存緩存是最有效和最常用的緩存形式。

為什么要使用緩存?

緩存具有許多優點,包括:

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

1. Redis

Redis(完整的 REmote DIctionary Server)是一個免費,開源,快速,高性能,靈活的分布式內存計算系統,可以在大多數(即使不是全部)編程語言中使用。

它是內存中的數據結構存儲,用作緩存引擎,內存中的持久磁盤數據庫和消息代理。盡管 Redis 是在 Linux(推薦的部署平臺)和 OS X 上進行開發和測試的,但它也可以在其他 POSIX 系統(例如 * BSD)中運行,而無需任何外部依賴。

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

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

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

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

Redis 有很多用例,包括數據庫緩存,全頁緩存,用戶會話數據管理,API 響應存儲,發布 / 訂閱消息傳遞系統,消息隊列等等。這些可以應用于游戲,社交網絡應用程序,RSS 提要,實時數據分析,用戶推薦等。

2. Memcached

Memcached 是一個免費,開源,簡單但功能強大的分布式內存對象緩存系統。它是內存中的鍵值存儲區,用于存儲少量數據,例如數據庫調用,API 調用或頁面呈現的結果。它可以在類似 Unix 的操作系統(包括 Linux 和 OS X)上運行,也可以在 Microsoft Windows 上運行。

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

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

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

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

3. Apache Ignite

Apache Ignite,也是一個免費的開放源代碼,可水平擴展的分布式內存中鍵值存儲,高速緩存和多模型數據庫系統,它提供了強大的處理 API,可用于在分布式數據上進行計算。它也是一個內存中的數據網格,可以在內存中使用,也可以與 Ignite 本機持久性一起使用。它可以在類似 UNIX 的系統(例如 Linux 和 Windows)上運行。

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

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

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

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

4.Couchbase Server

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

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

Couchbase Server 附帶了本機多實例集群支持,其中集群管理器工具協調所有節點活動,并僅向客戶端提供集群范圍的接口。重要的是,您可以根據需要添加,刪除或替換節點,而無需停機。它還支持跨集群節點的數據復制,跨數據中心的選擇性數據復制。

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

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

5.Hazelcast IMDG

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

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

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

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

它最流行的用例是分布式內存中緩存和數據存儲。但是,它也可以部署用于 Web 會話群集,NoSQL 替換,并行處理,簡單的消息傳遞等等。

6.Mcrouter

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

此外,它支持冷緩存預熱,豐富的統計信息和調試命令,可靠的刪除流服務質量,較大的值,廣播操作,并具有 IPv6 和 SSL 支持。

它已在 Facebook 和 Instagram 中用作緩存基礎結構的核心組件,高峰時每秒處理近 50 億個請求。

7.Varnish Cache

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

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

從客戶端收到 HTTP 請求后,它將請求轉發到后端 Web 服務器。Web 服務器響應后,Varnish 將內容緩存在內存中,并將響應傳遞給客戶端。當客戶端請求相同的內容時,Varnish 將從緩存提升應用程序響應中為其提供服務。如果它不能提供緩存中的內容,則將請求轉發到后端,然后將響應緩存并傳遞給客戶端。

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

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

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

8.Squid Caching Proxy

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

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

Squid 具有一些功能,例如在代理服務器的相互通信的層次結構上分配負載,生成有關 Web 使用模式的數據(例如,有關訪問量最大的站點的統計信息),使您能夠分析,捕獲,阻止,替換或修改正在代理的消息。

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

9.NGINX

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

NGINX 提供基本的緩存功能,其中緩存的內容存儲在磁盤上的持久性緩存中。NGINX 中有關內容緩存的有趣之處在于,當它無法從原始服務器獲取新鮮內容時,可以將其配置為從其緩存中傳遞陳舊的內容。

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

它通常被部署為應用程序堆棧中的反向代理,負載平衡器,SSL 終結器 / 安全網關,應用程序加速器 / 內容緩存和 API 網關。它還用于流媒體。

10. Apache Traffic Server

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

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

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

Traffic Server 可以用作 Web 代理緩存,正向代理,反向代理,透明代理,負載均衡器或在緩存層次結構中使用。

到此,相信大家對“適用于 Linux 的頂級開源緩存工具有哪些”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-17發表,共計6614字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 湛江市| 平陆县| 辽宁省| 百色市| 通城县| 星子县| 晴隆县| 宜兰市| 安泽县| 泸西县| 唐河县| 迁安市| 宜阳县| 潼南县| 夏邑县| 旬阳县| 岑溪市| 黔西县| 宜兰市| 酒泉市| 莱芜市| 饶阳县| 渭南市| 潮州市| 光泽县| 咸阳市| 苏州市| 宁津县| 正安县| 南郑县| 城口县| 正宁县| 大埔县| 盐源县| 化州市| 铜陵市| 昌图县| 墨江| 绥滨县| 普定县| 比如县|