修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)

Standalone

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

Please complete this required field.

所有服务器的MAC地址,由换行符或逗号分隔。

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
Shard 服务最大数量
Shard 服务最大总核数
HDC 服务最大数量
HDC 服务最大总核数
申请天数
审批日期
过期日期
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

v5.0
搜索
    v5.0

      缓存

      概述

      数据库缓存是一种性能增强技术,它将频繁访问的数据存储在Shard服务器内存中,减少对磁盘存储的依赖,从而大大提升查询响应速度。

      缓存类型

      嬴图支持以下的缓存类型:

      • 图缓存:包含图的拓扑信息,能加速图遍历。
      • 点缓存:包括标记了LTE的点属性,能加速点过滤。
      • 边缓存:包括标记了LTE的边属性,能加速边过滤。

      服务器的缓存配置

      图缓存、点缓存和边缓存的默认启用状态、占用内存大小以及达到最大内存时的逐出策略等可在每台Shard服务器配置文件的ComputeEngine部分进行配置,相关配置项有:

      • engine_typedefaultspeed
      • enable_graph_cache
      • graph_cache_size
      • graph_cache_bucket_number
      • graph_cache_max_memory_policy
      • enable_node_cache
      • enable_edge_cache
      • node_cache_size
      • edge_cache_size

      查看配置详情

      缓存预热

      上述Shard服务器配置中的ComputeEngine > engine_type设置为speed时,支持缓存预热,就是在使用数据库进行查询前,将数据预先加载至缓存中。如何预热

      如果没有进行预热,相关数据只有在首次被查询访问时,才会加载到缓存中,因此第一次的查询无法使用缓存。

      清除缓存

      缓存数据存储在内存中,在服务器重启或手动清除时会被清除。

      查看缓存状态

      使用语句cache.<cacheType>.status()可以查看所有shard服务器上某类缓存的状态。

      // 查看图缓存状态
      cache.graph.status()
      
      // 查看点缓存状态
      cache.node.status()
      
      // 查看边缓存状态
      cache.edge.status()
      

      语句返回_cache_shard_1_cache_shard_2等表格。每个_cache_shard_<N>表包含ID为<N>的分片下指定缓存类型的信息,包含以下字段:

      字段
      描述
      status 某类缓存的当前状态,包括OnOff
      cache_size 某类缓存的分配大小(单位:MB),即服务器配置中的graph_cache_sizenode_cache_sizeedge_cache_size

      开启缓存

      使用语句cache.<cacheType>.turnOn()可以为所有shard服务器开启指定类型缓存。该操作以作业形式进行,稍后可使用show().job(<id?>)确认是否开启成功。

      请注意,服务器重启后,缓存状态会恢复成服务器配置中enable_graph_cacheenable_node_cacheenable_edge_cache的设置。

      // 为所有图集的所有主副本开启图缓存
      cache.graph.turnOn()
      
      // 为所有图集的所有主副本和从副本开启图缓存
      cache.graph.turnOn({followers: true})
      
      // 为所有图集的所有主副本开启点缓存
      cache.node.turnOn()
      
      // 为所有图集的所有主副本和从副本开启点缓存
      cache.node.turnOn({followers: true})
      
      // 为所有图集的所有主副本开启边缓存
      cache.edge.turnOn()
      
      // 为所有图集的所有主副本和从副本开启边缓存
      cache.edge.turnOn({followers: true})
      

      关闭缓存

      使用语句cache.<cacheType>.turnOff()可以为所有shard服务器关闭指定类型缓存。

      请注意,服务器重启后,缓存状态会恢复成服务器配置中enable_graph_cacheenable_node_cacheenable_edge_cache的设置。

      // 关闭所有图集的所有主副本的图缓存
      cache.graph.turnOff()
      
      // 关闭所有图集的所有主副本和从副本的图缓存
      cache.graph.turnOff({followers: true})
      
      // 关闭所有图集的所有主副本的点缓存
      cache.node.turnOff()
      
      // 关闭所有图集的所有主副本和从副本的点缓存
      cache.node.turnOff({followers: true})
      
      // 关闭所有图集的所有主副本的边缓存
      cache.edge.turnOff()
      
      // 关闭所有图集的所有主副本和从副本的边缓存
      cache.edge.turnOff({followers: true})
      

      预热

      如果支持预热,使用语句cache.<cacheType>.warmup()可将数据从当前图集加载到缓存中。预热操作以作业形式执行,稍后可使用show().job(<id?>)确认预热是否完成。该操作会消耗内存,且只能在相应类型缓存开启时执行。

      // 将图拓朴加载到主副本的缓存中
      cache.graph.warmup()
      
      // 将图拓朴加载到主副本和从副本的缓存中
      cache.graph.warmup({followers: true})
      
      // 将完成LTE操作的点属性加载到主副本的缓存中
      cache.node.warmup()
      
      // 将完成LTE操作的点属性加载到主副本和从副本的缓存中
      cache.node.warmup({followers: true})
      
      // 将完成LTE操作的边属性加载到主副本的缓存中
      cache.edge.warmup()
      
      // 将完成LTE操作的边属性加载到主副本和从副本的缓存中
      cache.edge.warmup({followers: true})
      

      清除缓存

      使用语句cache.<cacheType>.clear()可以清除当前图集的缓存。该操作可以释放内存。

      // 清除主副本缓存中的图拓朴  Clears graph topology from cache for the leader replica
      cache.graph.clear()
      
      // 清除主副本和从副本缓存中的图拓朴
      cache.graph.clear({followers: true})
      
      // 清除主副本缓存中所有完成LTE操作的点属性
      cache.node.clear()
      
      // 清除主副本和从副本缓存中所有完成LTE操作的点属性
      cache.node.clear({followers: true})
      
      // 清除主副本缓存中所有完成LTE操作的边属性
      cache.edge.clear()
      
      // 清除主副本和从副本缓存中所有完成LTE操作的边属性
      cache.edge.clear({followers: true})
      

      LTE

      LTE(Load to Engine)操作标记要缓存的点或边属性。当一个属性不再需要缓存时,可以执行UFE(Unload from Engine)操作将其卸载。卸载后的属性可能临时保留在缓存中,随后才被清除或逐出,但不会被查询访问。

      使用LTE()语句对属性执行LTE。LTE操作以作业形式进行,稍后可使用show().job(<id?>)确认操作是否成功。

      LTE().node_property(@member._id)
      
      LTE().edge_property(@transfer.amount)
      

      使用UFE()语句对属性执行UFE。

      UFE().node_property(@member._id)
      
      UFE().edge_property(@transfer.amount)
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策 数据处理协议
      请勾选表示您已阅读并同意。

      Copyright © 2019-2025 北京同心尚科技发展有限公司-保留所有权利 京ICP备19040872号-1