グラフ構造を無償で扱えないのは嫌なので、redisgraphをWSL2に極振りしてインストールしてみました。
エイプリルフールの日なので。
タイトルはエイプリルフールなので。
そうだ、やはり、これからはグラフ構造データベースだ、と思った。...思ったのは数年前か。
前々からNeo4jは試用しているものの、営業の方から商用ライセンスがお高いと教えてもらったので、前々から気になっていたredisgraphを試してみることにした。
私の実行環境は、wsl2+ununtu on windows 10に構築したdocker(付記にインストール記を記す)。
ただし、以下、dockerが走っていれば何でも良い。dockerさえ動いていれば、インストールに要する時間は数分。
redisgraphのサイト:
https://oss.redislabs.com/redisgraph/
redisgraphは、redis上で動くクラフ構造データベース。グラフ構造にクエリをかけるcypherが通る。良い点としては、neo4jよりはメジャーなredis上で動くグラフ構造データベースというところか。割と淡々とメンテされている。
redisgraphのdocker経由での導入
dockerが走っていれば、公式サイトにある通り、以下で、redisgraphが動作する。
docker run -p 6379:6379 -it --rm redislabs/redisgraph
以下のようにredis動いてますアピールがくれば、裏方でredisgraphも動いている。
$ sudo docker run -p 6379:6379 -it --rm redislabs/redisgraph
Unable to find image 'redislabs/redisgraph:latest' locally
latest: Pulling from redislabs/redisgraph
68ced04f60ab: Pull complete
7ecc253967df: Pull complete
765957bf98d4: Pull complete
91fff01e8fef: Pull complete
76feb725b7e3: Pull complete
75797de34ea7: Pull complete
5cba5fea34d7: Pull complete
a7ce59b41c3a: Pull complete
Digest: sha256:f154681547adea4fa4d376e43ee69471d8b4f7d3cd3e2e9a42b26090b19e20fc
Status: Downloaded newer image for redislabs/redisgraph:latest
1:C 01 Apr 2020 08:37:12.414 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 01 Apr 2020 08:37:12.414 # Redis version=5.0.8, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 01 Apr 2020 08:37:12.414 # Configuration loaded
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.8 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 1
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
redisgraphの動作確認
redis-clientを用いる。
ubuntuでのインストール:
sudo apt install redis-tools
cypherのクエリは エイプリルフールなので、こんな感じにしておこう。
GRAPH.QUERY Itai "CREATE (:Rider {name:'mapleメイプル'})-[:rides]->(:Mover {name:'SHシロップ'}), (:Rider {name:'surryサリー'})-[:rides]->(:Mover {name:'SHシロップ'}), (:Rider {name:'kuroko黒子'})-[:rides]->(:Mover {name:'SHUGシュガミ'})"
GRAPH.QUERY Itai "MATCH (r:Rider)-[:rides]->(t:Mover) WHERE t.name = 'SHシロップ' RETURN r.name, t.name"
実行結果
$ redis-cli
127.0.0.1:6379> GRAPH.QUERY Itai "CREATE (:Rider {name:'mapleメイプル'})-[:rides]->(:Mover {name:'SHシロップ'}), (:Rider {name:'surryサリー'})-[:rides]->(:Mover {name:'SHシロップ'}), (:Rider {name:'kuroko黒子'})-[:rides]->(:Mover {name:'SHUGシュガミ'})"
1) 1) "Nodes created: 6"
2) "Properties set: 6"
3) "Relationships created: 3"
4) "Query internal execution time: 3.183400 milliseconds"
127.0.0.1:6379> GRAPH.QUERY Itai "MATCH (r:Rider)-[:rides]->(t:Mover) WHERE t.name = 'SHシロップ' RETURN r.name, t.name"
1) 1) "r.name"
2) "t.name"
2) 1) 1) "maple\xe3\x83\xa1\xe3\x82\xa4\xe3\x83\x97\xe3\x83\xab"
2) "SH\xe3\x82\xb7\xe3\x83\xad\xe3\x83\x83\xe3\x83\x97"
2) 1) "maple\xe3\x83\xa1\xe3\x82\xa4\xe3\x83\x97\xe3\x83\xab"
2) "SH\xe3\x82\xb7\xe3\x83\xad\xe3\x83\x83\xe3\x83\x97"
3) 1) "surry\xe3\x82\xb5\xe3\x83\xaa\xe3\x83\xbc"
2) "SH\xe3\x82\xb7\xe3\x83\xad\xe3\x83\x83\xe3\x83\x97"
3) 1) "Query internal execution time: 1.590000 milliseconds"
...wsl2上では、日本語はcliでは表示されないらしい。。
付記 wsl2にdockerをインストール
概ね、以下の紹介してくださっている通り。
https://yukituna.com/2201/
続く。
続く...のは、本家『痛いのは嫌』の方か。また脱力させてくれることを期待。
redisgaphの使い方編やサーバ側で動かて見る編は、そのうちに。ということで、みんな、エイプリルフールの日には、アドベントカレンダーとは別の気合入っていない記事を書こうよ、と言ってみたり
https://natalie.mu/comic/news/373162
Author And Source
この問題について(グラフ構造を無償で扱えないのは嫌なので、redisgraphをWSL2に極振りしてインストールしてみました。), 我々は、より多くの情報をここで見つけました https://qiita.com/e-a-st/items/e502fc8b417d3b42dcce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .