亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何同時使用Redis和RedisGraph模塊

發布時間:2020-06-05 21:02:03 來源:億速云 閱讀:544 作者:Leah 欄目:云計算

如何同時使用Redis和RedisGraph模塊?針對這個問題,今天小編總結這篇運用實例講解的文章,解題步驟非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家有所幫助。

如何同時使用Redis和RedisGraph模塊

在這個演示中我展示了一個小界面,它支持搜索動物并通過生物分類系統(界、門、類、目等)查看它們之間的關系。全文部分基于維基百科的第一段英文。例如,搜索“寵物貓”和“Blue Whale”,會發現他們都是哺乳動物,而如果搜索“寵物貓”和“雪豹”,則會發現他們都屬于同一個科:貓科。

這個演示項目出乎意料地簡單,但我應該指出 RediSearch 和 RedisGraph 之間的集成仍處于早期階段,在編寫本文時還沒有準備好應用于生產環境。所以,我建議您在了解 RediSearch 和 RedisGraph 的集成將在未來幾個月逐漸成熟的前提下,確定此方法是否能夠滿足您的需求。

讓我們再討論一下如何從源碼構建。要完成的第一件事是基于代碼庫中正確的分支構建 RediSearch 和 RedisGraph。RediSearch 使用的是當前的主分支,而 RedisGraph 是 redisconf 分支。如果您想根據自己的需要構建解決方案,可以從源代碼構建這兩個模塊。RedisGraph 和 RediSearch 的網站上都有關于如何構建的詳細說明,這并不困難,只是需要一點時間。

配置模塊的位置在 redis.conf 文件中,為了確保在 RediSearch 之前加載 RedisGraph,需要在 redis.conf 文件的模塊部分將 RediSearch 的 loadmodule 配置項放在 RedisGraph 的 loadmodule 配置項之前。在完成編輯 redis.conf 之后,需要重啟Redis 服務器讓配置生效。

在之前演示的 demo 中,我使用 RedisGraph-bulk-loader 腳本將以下內容從 CSV 加載到 RedisGraph,從而包括了我們收集的數據集。這個數據集只包括哺乳動物,因為其他動物的數據質量較低(非哺乳動物物種很少有好的維基百科描述)。

下面是加載數據的例子:


$ cd redisgraph-bulk-loader/ $ python3 bulk_insert.py MAMMALS -q -n /path/to/demo/dataload/Class.csv -n /path/to/demo/dataload/Family.csv -n /path/to/demo/dataload/Genus.csv -n /path/to/demo/dataload/Order.csv -n /path/to/demo/dataload/Species.csv -r /path/to/demo/dataload/IN_CLASS.csv -r /path/to/demo/dataload/IN_FAMILY.csv -r /path/to/demo/dataload/IN_GENUS.csv -r /path/to/demo/dataload/IN_ORDER.csv -a yourpassword 1 nodes created with label 'Class' 157 nodes created with label 'Family' 1272 nodes created with label 'Genus' 29 nodes created with label 'Order' 5616 nodes created with label 'Species' 29 relations created for type 'IN_CLASS' 1272 relations created for type 'IN_FAMILY' 5616 relations created for type 'IN_GENUS' 157 relations created for type 'IN_ORDER' Construction of graph 'MAMMALS' complete: 7075 nodes created, 7074 relations created in 0.443749 seconds $ redis-cli -a yourpassword GRAPH.QUERY MAMMALS "CALL db.idx.fulltext.createNodeIndex('Species','description')" Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 1) (empty list or set) 2) (empty list or set) 3) 1) "Query internal execution time: 324.970000 milliseconds"


(gist:gist.github.com/stockho)


在這里,key MAMMALS 包含了我們的整個圖表。一些重要的注意事項:

?bulk_insert.py 上的-q開關非常重要,因為它允許在讀取 CSV 時進行智能引用。

?調用一次 redis-cli 對所有節點進行批量索引,從而為全文搜索攝取了7000 多個文檔。

現在讓我們啟動并運行一個 UI。和幾乎所有 Node.js 應用程序一樣,我們先安裝 npm。安裝大概需要幾秒鐘,因為我們不僅要管理Node 的服務器端文件。還有前端的 Vue.js 組件。如果你最近沒有花很多時間在前端JavaScript 上,那你大概不能使用一個 FTP 和 HTML 文件來實現這些功能。所幸現代前端確實重視工具,所以我們可以安裝 VueCLI(我建議遵循 Vue CLI 入門指南)。

在你的前端工具準備好過后,讓我們繼續來講 npm 安裝和啟動運行前端上:

$ npm run build

這將創建我們所有前端文件的 dist 目錄。現在我們有數據在 Redis 里,我們的前端文件也準備好啟動服務,所以我們可以連接 Redis 服務器:

$ node server.js -p 6379 -a yourpassword -hyourhostOrlocalhost

讓我們先討論一下關于我們剛剛打開的這個服務器的一些問題。它構建在 Express.js上,主要使用 WebSocket 進行通信。我還集成了可視化引擎調試工具,它允許您在單獨的瀏覽器窗口中查看正在執行的命令。你可以把瀏覽器指向地址:http://localhost:4444。

總之,相對于它所實現的功能來說,它非常的簡短——只有 75 行代碼。我們的解決方案不需要那么長,因為我們實際上所做的就是接受WebSocket 連接,根據傳遞的消息運行 Redis 命令,然后將這些消息與結果一起傳遞回來。Redis(Graph)做了所有復雜的工作。讓我們看看正在執行的命令。

為了搜索關鍵字,我們運行這個命令:

> GRAPH.QUERY MAMMALS"CALL db.idx.fulltext.queryNodes('Species','cat house pet')"

這很簡單。我們的鍵是哺乳動物,我們使用一個特殊的語法調用了一個特定的函數,它的第一個參數是我們要查找的節點的標簽,另一個參數是實際要搜索的字符串。您可以傳遞有效的RediSearch 參數進行查詢,但請記住,目前這只是全文本搜索,因此不要使用地理空間、標記或數字子句。

一旦我們確定了我們要比較的兩種動物,我們就可以使用一個簡單的命令進行查詢:

> GRAPH.QUERY MAMMALS"MATCH (s:Species)-[*]->(x)<-[*]-(c:Species) WHERE c.fullname ='Felis catus' AND s.fullname = 'Balaenoptera borealis' RETURN x.name,labels(x) LIMIT 1"

在 server.js 文件中,這些查詢被表示為JavaScript 模板字符串,沒有對用戶隱藏,用戶輸入的字符串被直接插入到輸入中進行查詢。但如果在生產環境中部署類似這樣的東西,就需要小心接收和校驗用戶輸入。

如果打算修改前端代碼,請確保編輯的是/src 目錄,而不是/dist。編輯之后,您需要再次運行 npmrun build 或使用開發服務器(npmrun serve),該服務器自動編譯對前端代碼的更改,并將其提供給另一個端口。這是一個非常標準的Vue.js 和 Bootstrap 應用。唯一真正相關的文件是:/src/App.js, /src/components/panels.vue and /src/components/search.vue.

關于同時使用Redis和RedisGraph模塊的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尖扎县| 沁水县| 陇南市| 湖州市| 银川市| 民勤县| 右玉县| 本溪| 汝城县| 清丰县| 阿城市| 彩票| 翁源县| 浑源县| 临武县| 墨玉县| 土默特左旗| 黄陵县| 托克托县| 全州县| 曲靖市| 龙胜| 甘孜| 石景山区| 石台县| 龙岩市| 高密市| 治多县| 泽州县| 凉山| 大方县| 岳普湖县| 山阳县| 文昌市| 六安市| 象山县| 运城市| 六枝特区| 慈利县| 介休市| 康乐县|