当前位置: 首页 > news >正文

网站建设佰首选金手指十站长工具seo

网站建设佰首选金手指十,站长工具seo,建设网站哪家好,汕头疫情最新通报The architecture of RedisGraph 本文关注RedisGraph的整体架构,分别从图存储模型、索引、并发控制、和执行计划四个方面简要阐述。下图为RedisGraph的整体架构图。 1 图存储模型 了解一个图数据库的架构,最重要的就是其图存储模型,即其中的…

The architecture of RedisGraph

本文关注RedisGraph的整体架构,分别从图存储模型、索引、并发控制、和执行计划四个方面简要阐述。下图为RedisGraph的整体架构图。

1 图存储模型

了解一个图数据库的架构,最重要的就是其图存储模型,即其中的图数据是怎么组织和存储的。

首先,在一个图数据库中,必不可少的数据是:节点的属性(node attribute)以及节点之间的关系(edge)。比如说,图数据库中有两个节点node1{name: 小明}、node1{name: 小红},两者存在朋友关系,那么,就需要存储node1和node2的name属性,以及node1和node2之间的朋友关系。除此之外,RedisGraph还支持存储节点之间的关系的属性(edge attribute),比如,存储node1和node2朋友关系的建立时间。

在RedisGraph中,node attribute和edge attribute存储在Block数组中,而节点之间的关系使用邻接矩阵进行存储。值得注意的是,node的数量与邻接矩阵的维数是一致的。每一个节点都有一个node_id(≥ 0),节点属性存储在Block数组node_id偏移地址(nodes[node_id])处,节点的下一跳信息存储在邻接矩阵(adjacency)的第node_id行。显而易见,这样做的目的是,快速索引节点属性和下一跳信息。

对于节点间关系的存储,RedisGraph不仅仅使用了邻接矩阵。为了方便快速查询,还是用了label矩阵(labels)和relation矩阵(relations)。为了适应类型化节点,每个标签分配一个额外的矩阵,即label矩阵。每个类型的关系都有自己的专用矩阵,即relation矩阵。

2 索引

RedisGraph中并没有索引的代码实现,其使用RediSearch搜索引擎来构造索引,并且,RedisGraph仅仅支持哈希索引。RedisGraph中的索引分为两种:exact match index和full-text index。本文只关注exact match index。

  • 为什么要建立索引?

    我们来看一个cypher查询:

    GRAPH.QUERY DEMO_GRAPH "MATCH (n:作品)-[]-(m:角色) where m.name='郭靖' return n.name"
    

    这个查询仅仅涉及name=‘郭靖’,如果没有在角色: name上建立索引,RedisGraph只能是扫描一遍Block数组,进行字符串匹配,来找出name='郭靖’的节点。显然,这效率低下。

  • 索引的key和value是什么?

    以一个在节点属性上建立索引的cypher为例进行分析:

    GRAPH.QUERY DEMO_GRAPH "CREATE INDEX ON :角色(name)"
    

    RedisGraph在执行这个请求后,就会在角色的name属性上建立索引。

    索引的key是name属性;value是node_id。通过node_id,就可以在Block数组中查询节点属性,在矩阵中查询下一跳信息。

    同样,如果在关系的属性上建立索引,那么,索引的key是属性;value是edge_id。

3 并发控制

RedisGraph内创建有两个线程池,分别是读线程池(_readers_thpool)和写线程池(_writers_thpool),分别用于处理读写请求。当接收到query时,redisgraph会为其分配读写线程,若线程池满,则放入等待队列中。

RedisGraph内创建有两个线程池,分别是读线程池和写线程池,分别用于处理读写请求。当接收到query时,RedisGraph会为其分配读写线程,若线程池满,则放入等待队列中。需要注意的是,写线程池中的线程数为1,即,RedisGraph中不会出现write-write冲突。

在并发控制过程中,Redisgraph的封锁粒度为Graph。

4 执行计划

RedisGraph使用Cypher查询语言,并为其构建了解析器。与一般的关系数据库类似,RedisGraph也需要进行词法分析、语法分析、语义分析等流程,从而生成执行计划。

RedisGraph会将查询操作转换为相应的矩阵操作,获取查询结果。当一个搜索模式 (N0)-[A]->(N1)-[B]->(N2)<-[A]-(N3) 被用作查询的一部分时,RedisGraph将其转换为一组矩阵乘法。对于给定的示例,一种可能的表达式是:A * B * Transpose(A)。

http://www.mmbaike.com/news/103995.html

相关文章:

  • 武汉市网站吉林百度seo公司
  • 网站配色设计郑州seo外包阿亮
  • 赤峰网站建设 公司seo技术培训班
  • 获取网站漏洞后下一步怎么做长沙网站优化seo
  • 广东佛山网站建设制作网页的代码
  • 外贸流程一般包括哪几个部分seo营销外包公司
  • 网站作业代做app营销推广方案
  • 设计网站兼职赚钱app拉新佣金排行榜
  • 如何做高网站的浏览量网络营销的50种方法
  • 网易企业邮箱账号seoul什么意思
  • 做网站文字大小百度移动开放平台
  • javacms做动漫网站软文撰写案例
  • 郓城做网站公司seo策略是什么意思
  • 建站系统破解个人博客网页制作
  • 设计网站费用多少sem是什么的缩写
  • 国内做网站的公司有哪些网站查询地址
  • 自己如何做公司网站视频seo收费标准
  • 做 在线观看免费网站百度上海推广优化公司
  • 网站图片搜索技术哪里可以做推广小程序拿佣金
  • 深圳龙华区房价汕头seo收费
  • 网站建设 功能需求2022最新新闻素材摘抄
  • 政府网站建设管理意见品牌推广百度seo
  • 贵阳百度做网站电话seo免费入门教程
  • 网站设计风格分类成功品牌策划案例
  • 西安手机网站定制网站建设传统营销
  • 做女装的看哪个网站好免费建站的网站有哪些
  • 做单页网站价格电商代运营公司100强
  • 如何提高网站安全离我最近的电脑培训中心
  • 如何用服务器搭建自己的网站权重查询站长工具
  • 商城网站制作方案怎样在百度上发布信息