9 个版本
0.4.4 | 2023年6月19日 |
---|---|
0.4.3 | 2022年10月29日 |
0.4.2 | 2021年12月12日 |
0.4.1 | 2021年2月21日 |
0.1.1 | 2020年11月26日 |
#940 在 数据库接口 中
34KB
457 代码行
redis_graph
redis-graph 为 redis crate 提供了一个小的 trait 和扩展函数,允许与可以安装为 redis 模块 的 redis 图数据类型一起工作。Redis 图操作主要使用两个顶级 Redis 命令(一个用于读写操作,一个用于只读操作)。除了这些,还有一些面向性能、配置和清理的维护命令,从 v0.4.0 版本开始也得到支持。图命令有同步和异步版本。
该 crate 称为 redis-graph
,您可以通过 cargo 依赖它。您还需要在依赖中包含 redis。此版本针对 redis 0.23.0 进行了测试,但应与更高版本的版本一起运行。
[dependencies]
redis = "0.23.0"
redis-graph = "0.4.4"
或者通过 git
[dependencies.redis-graph]
git = "https://github.com/tompro/redis_graph.git"
branch = "main"
从 redis crate 继承异步功能(任选:'async-std-comp' 或 'tokio-comp')
[dependencies]
redis = "0.23.0"
redis-graph = { version = "0.4.4", features = ['tokio-comp'] }
同步使用
要启用 redis 图命令,只需将 trait redis_graph::GraphCommands 载入作用域。然后,redis 图命令将在您的 redis 连接上可用。要同时访问值提取器 trait,只需导入整个 crate redis_graph::*。
use redis::Commands;
use redis_graph::*;
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_connection()?;
let _:GraphResultSet = con.graph_query(
"my_graph",
"CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'})"
)?;
let _:GraphResultSet = con.graph_ro_query(
"my_graph",
"MATCH (rider:Rider)-[:rides]->(:Team {name:'Yamaha'}) RETURN rider"
)?;
异步使用
要启用 redis 图异步命令,只需将 redis_graph::AsyncGraphCommands 载入作用域。要同时访问值提取器 trait,只需导入整个 crate redis_graph::*。
use redis::AsyncCommands;
use redis_graph::*;
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_async_connection().await?;
let _:GraphResultSet = con.graph_query(
"my_graph",
"CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'})"
).await?;
let _:GraphResultSet = con.graph_ro_query(
"my_graph",
"MATCH (rider:Rider)-[:rides]->(:Team {name:'Yamaha'}) RETURN rider"
).await?;
其他 Rust Redis 图库
redisgraph-rs 是 Redis 图模块的高级 crate。在撰写本文时,它不支持异步操作。
依赖项
~3–14MB
~191K SLoC