1. 程式人生 > 其它 >高效能記憶體圖資料庫RedisGraph(二)

高效能記憶體圖資料庫RedisGraph(二)

這篇文章主要介紹用一下RedisGraph的歷史和現狀。

2018年5月,Redis Labs釋出了RedisGraph的預覽/測試版。6個月後,在Redis Labs和開源社群的開發者們的共同努力下,RedisGraph的第一個GA正式版本RedisGraph v1.0發行。截止2019年3月,RedisGraph v1.0共進行了15個小版本升級,解決了許多諸如記憶體洩漏、查詢異常的問題,增加了眾多功能。也根據社群和客戶的反饋,不斷擴充套件RedisGraph模組對函式和查詢語句的支援範圍。2020年1月,RedisGraph的2.0版本正式釋出,自RedisGraph v1.0版釋出以來,該專案已經獲得了超過1000個GitHub標星和10000多個Docker pull。自1.0版以來,RedisGraph的增強太多,此處無法一一列舉,但其中有幾個較為重要的進展與突破:

首先是全文搜尋,RedisSearch是Redis推出的一個高效能的全文搜尋引擎,Redis的使用者可通過載入模組的方式使用它。RedisSearch 1.6的發行版引入了一個新的低階API,該API允許其他模組使用RedisSearch進行二級索引和全文搜尋。RedisGraph 2.0是第一個充分利用此功能的通用Redis模組。在此版本之前,RedisGraph通過skiplists實現的索引功能效能優異,但是其僅限於精確匹配,並且不支援字首或模糊匹配,而且也沒法基於給定的標籤將兩個單獨索引用作複合索引。

然後是完整圖響應,RedisGraph 2.0不僅可以返回屬性值的表格型結果,還可以返回節點,關係和其他資料型別。這項新功能將允許諸如物件圖對映(OGM),查詢子圖和視覺化等操作。基於這個完整圖響應的強大功能,RedisGraph實現了一些與RedisInsight的整合,並建立了與Linkurious和Graphileon的合作伙伴關係。

RedisInsight是Redis Labs推出的用於簡化Redis應用程式開發的GUI,它為Redis提供了直觀,高效的GUI,通過對大多數流行的Redis模組的內建支援,使用者可以與資料庫進行互動並管理庫中的資料。它提供了一些工具來分析資料庫的使用情況,分析當前庫記憶體佔用情況,並指導使用者更好地使用Redis。在這個應用程式中,使用者可以輸入查詢並獲得視覺化小夥。前文中提到的完整圖響應的功能允許RedisInsight呈現視覺化效果,並允許檢查查詢返回的節點和邊的所有屬性,而無需事先知道這些屬性。RedisInsight 1.2為探索和查詢Redis中儲存的圖提供了直接支援。對全圖響應的新支援使RedisInsight可以將查詢子圖以視覺化形式直接呈現給使用者。隨後,使用者可以單擊圖形中的節點和邊緣以檢查屬性值或進一步擴充套件圖形。但由於目前RedisGraph對Cypher的支援範圍有限,因此使用者無法在RedisInsight上直接進行本文中設計的查詢操作。因此,雖然RedisInsight是一個功能十分完備的Redis資料庫GUI,它提供了很好的視覺化效果和互動操作。但作為一個數據庫管理軟體,無法提供使用者想要的查詢介面,RedisInsight還需要等待RedisGraph的發展腳步。如果你想體驗一下RedisGraph,那麼目前來說RedisInsight是最佳選擇。

Redis Labs與法國軟體開發商Linkurious達成合作,在Linkurious的企業平臺Linkurious Enterprise上,Linkurious開發了OGMA庫,該庫可為RedisInsight內部的視覺化提供支援,使使用者可以直觀地與RedisGraph中儲存的圖進行互動。同樣,RedisGraph 2.0中提供的全圖響應功能將允許與Linkurious的圖資料視覺化和分析平臺整合,雙方未來或許會有更深度的整合。

2020年1月,Redis Labs與荷蘭軟體公司Graphileon宣佈建立合作伙伴關係,以允許RedisGraph使用者在Graphileon的高階繪圖工具中構建應用程式。RedisGraph和Graphileon的結合使使用者能夠享受快速簡便的資料管理,並利用RedisGraph支援的部分Cypher查詢語言的功能來查詢和分析資料,同時充分利用RedisGraph的獨特優勢。

目前RedisGraph的最新版本為v2.2,在Redis Labs和來自開源社群的開發者們的共同努力下,RedisGraph相較於初代,效能提升了多達六倍,支援的Cypher語言的範圍也大大增加。下篇文章,我將介紹RedisGraph已經支援的Cypher(常用部分)