【Neo4j系列】Neo4j之CQL语句和函数介绍

本文将对Neo4j中的CQL语句和CQL函数进行详细介绍。

作者:后端小肥肠

目录

1. 前言

2. CQL语句

2.1. CQL简介

2.2. CREATE命令

2.3. MATCH命令

2.4. RETURN命令

2.5. MATCH和RETURN

2.6. CREATE+MATCH+RETURN命令

2.7. 关系基础

2.8. CREATE创建标签

2.9. WHERE子句

2.10. DELETE命令

2.11. REMOVE命令

2.12. SET子句

2.13. ORDER BY排序

2.14. UNION和UNION ALL

2.15. LIMIT和SKIP子句

2.16. MERGE

2.17. IN操作符

3. CQL函数

3.1. 字符串函数

3.2. AGGEGATION聚合

3.3. 关系函数

4.结语


1. 前言

CQL是Neo4j的查询语言,专为图数据库设计,使得对图形数据的操作变得简单而直观。本文我们将深入研究CQL的基本语法和一些强大的函数,为读者提供全面的了解,让大家能够更好地利用Neo4j构建和查询图数据库。

2. CQL语句

2.1. CQL简介

Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言。像Oracle数据库具有查询 语言SQL,Neo4j具有CQL作为查询语言。CQL是Neo4j图形数据库的查询语言,是一种声明性模式匹配语言,遵循SQL语法,其语法是非常简单且人性化、可读的格式。

CQL命令用法
CREATE创建节点,关系和属性
MATCH检索有关节点,关系和属性数据
RETURN返回查询结果
WHERE提供条件过滤检索数据
DALETE删除节点和关系
REMOVE删除节点和关系的属性
ORDER BY排序检索数据
SET添加或更新标签

2.2. CREATE命令

CQL中的CREATE命令可以实现以下操作:

1. 创建没有属性的节点

2. 使用属性创建节点

3. 在没有属性的节点之间创建关系

4. 使用属性创建节点之间的关系

5. 为节点或关系创建单个或多个标签

语法格式:

CREATE (<node-name>:<label-name>)

语法说明 : 

语法元素描述
CREATE一个Neo4j CQL命令
<node-name>我们要创建的节点名称
<label-name>一个节点标签名称

注意事项 -

1. Neo4j数据库服务器使用此<node-name>将此节点详细信息存储在Database中作为Neo4j DBA或Developer,我们不能使用它来访问节点详细信息。

2. Neo4j数据库服务器创建一个<label-name>作为内部节点名称的别名。作为Neo4j DBA或Developer,我们应该使用此标签名称来访问节点详细信息。

2.3. MATCH命令

CQL中的MATCH命令可以实现以下操作:

1. 从数据库获取有关节点和属性的数据

2. 从数据库获取有关节点,关系和属性的数据

语法格式:

MATCH (<node-name>:<label-name>)

语法说明:

语法元素描述
<node-name>节点名称
<label-name>0标签名称

2.4. RETURN命令

CQL中的RETURN命令可以实现以下操作:

1. 检索节点的某些属性

2. 检索节点的所有属性

3. 检索节点和关联关系的某些属性

4. 检索节点和关联关系的所有属性

语法格式:

RETURN 
   <node-name>.<property1-name>,
   ........
   <node-name>.<propertyn-name>

语法说明:

语法元素描述
<node-name>节点名称
<propertyn-name>属性名称

2.5. MATCH和RETURN

CQL中我们不能单独使用MATCH或RETURN命令,因此我们应该合并这两个命令以从数据库检索数据:

1. 检索节点的某些属性

2. 检索节点的所有属性

3. 检索节点和关联关系的某些属性

4. 检索节点和关联关系的所有属性

语法格式:

MATCH Command
RETURN Command

语法说明:

语法元素描述
MATCH命令
RETURN命令

2.6. CREATE+MATCH+RETURN命令

现在演示一下CREATE+MATCH+RETURN命令组合用的场景:

1.创建一个标签为xfc的节点,name为小肥肠,age为18

2.查询小肥肠节点对应信息

2.7. 关系基础

Neo4j图数据库遵循属性图模型来存储和管理其数据。根据属性图模型,关系应该是定向的, 否则,Neo4j将抛出一个错误消息。基于方向性,Neo4j关系被分为两种主要类型。

  • 单向关系

  • 双向关系

在以下场景中,我们可以使用Neo4j CQL CREATE命令来创建两个节点之间的关系。 这些情况适用于Uni和双向关系。

  • 在两个现有节点之间创建无属性的关系

  • 在两个现有节点之间创建有属性的关系

  • 在两个新节点之间创建无属性的关系

  • 在两个新节点之间创建有属性的关系

  • 在具有WHERE子句的两个退出节点之间创建/不使用属性的关系

下图为在两个节点之间创建关系例子:

2.8. CREATE创建标签

CQL中CREATE命令可以用来进行一下操作:

1. 可以创建单个标签或者多个标签

2. 可以根据CREATE语句来创建标签之间的关系

语法格式:

CREATE (node1-name:lable1-name) - [relationship-name:relationship-lable-name]->(node2-name:lable2-name)

语法说明:

语法元素描述
CREATE创建命令
node1-namefrom节点名称
lable1-namefrom节点标签
node2-nameto节点名称
lable2-nameto节点标签
relationship-name关系名称
relationship-lable-name关系标签

2.9. WHERE子句

像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果。

语法格式:

WHERE <condition>

复杂语法格式:

WHERE <condition> <boolean-operator> <condition>

Neo4j支持以下布尔运算符在Neo4j CQL WHERE子句中使用以支持多个条件。

布尔运算符描述示例
ADN逻辑与操作符,用于组合两个或多个条件,只有当所有条件为真时,整个表达式才为真。MATCH (n:Person) WHERE n.age > 25 AND n.name = 'John' RETURN n;
OR逻辑或操作符,用于组合两个或多个条件,只要至少有一个条件为真,整个表达式就为真。MATCH (n:Person) WHERE n.age > 25 OR n.name = 'John' RETURN n;
NOT逻辑非操作符,用于取反一个条件的真假。MATCH (n:Person) WHERE NOT n.name = 'John' RETURN n;

Neo4j 支持以下的比较运算符,在 Neo4j CQL WHERE 子句中使用来支持条件。

比较运算符描述示例
=用于检查两个值是否相等。MATCH (n:Person) WHERE n.age = 25 RETURN n;
<>用于检查两个值是否不相等。MATCH (n:Person) WHERE n.name <> 'John' RETURN n;
<用于检查一个值是否小于另一个值。MATCH (n:Person) WHERE n.age < 30 RETURN n;
>用于检查一个值是否大于另一个值。

MATCH (n:Person) WHERE n.age > 25 RETURN n;

<=用于检查一个值是否小于或等于另一个值。MATCH (n:Person) WHERE n.age <= 30 RETURN n;
>=用于检查一个值是否大于或等于另一个值。MATCH (n:Person) WHERE n.age >= 25 RETURN n;
 

where子句也可以创建关系:

语法格式:

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>) 
WHERE <condition>
CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>
       {<relationship-properties>}]->(<node2-label-name>)

语法说明:

上面的语句(语法格式)就是寻找两个已存在节点并在他两直接建立关系,我这里就不用表格拆开讲解了。

2.10. DELETE命令

CQL中DELETE命令可以用来进行以下操作:

1. 删除节点:

MATCH (n:Label)
WHERE n.property = 'value'
DELETE n;

这将删除所有符合条件的节点(不包含关系)。替换 "Label" 和 "property" 为你的节点标签和属性。 

2. 删除节点的特定关系:

MATCH (n:Label)-[r:RELATIONSHIP]->()
WHERE n.property = 'value'
DELETE r;

这将删除所有符合条件的节点的特定关系。

3. 删除节点及其关系:

MATCH (n:Label)
WHERE n.property = 'value'
DETACH DELETE n;

 这将删除节点及其关系。

2.11. REMOVE命令

CQL中,REMOVE命令用于删除图元素的属性和标签:

1. 移除节点(关系)的属性:

MATCH (n:Label)
WHERE n.property = 'value'
REMOVE n.property;

 筛选出 n.property = 'value'的节点,移除属性。

2. 移除节点(关系)的标签:

MATCH (n:Label)
REMOVE n:Label;

3. 同时移除节点(关系)的属性和标签:

MATCH (n:Label)
WHERE n.property = 'value'
REMOVE n.property, n:Label;

 筛选出 n.property = 'value'的节点,移除属性和标签。

2.12. SET子句

有时,我们需要向现有节点或关系添加新属性,要做到这一点,Neo4j CQL 提供了一个SET子句,可以进行以下操作:

1. 设置节点属性

MATCH (n:标签 {id: 1})
SET n.属性 = '新值'

这个查询会匹配具有标签 "标签" 和属性 "id" 值为 1 的节点,并将它的 "属性" 属性设置为 "新值"。 

2. 设置关系属性

MATCH (a:节点标签)-[r:关系标签]->(b:节点标签)
WHERE a.id = 1 AND b.id = 2
SET r.属性 = '新值'

这个查询会将从节点 a 到节点 b 的关系的 "属性" 设置为 "新值"。 

3. 添加新属性或更新多个属性

MATCH (n:标签 {id: 1})
SET n.属性1 = '新值1', n.属性2 = '新值2'

2.13. ORDER BY排序

CQL在MATCH命令中提供了“ORDER BY”子句,对MATCH查询返回的结果进行排序。我们可以按升序或降序对行进行排序。默认情况下,它按升序对行进行排序。 如果我们要按降序对它们进行排序,我们需要使用DESC子句。以下是一些示例用法:

1. 按节点属性升序排序:

MATCH (n:Label)
RETURN n.property
ORDER BY n.property

这将按节点的 "property" 属性的升序顺序返回结果。 

2. 按节点属性降序排序:

MATCH (n:Label)
RETURN n.property
ORDER BY n.property DESC

 这将按节点的 "property" 属性的降序顺序返回结果。

2.14. UNION和UNION ALL

与SQL一样,Neo4j CQL有两个子句,将两个不同的结果合并成一组结果

  • UNION

  • UNION ALL

UNION子句:

它将两组结果中的公共行组合并返回到一组结果中。 它不从两个节点返回重复的行。

限制:结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该相同,列的数据类型应该相同。

MATCH (cc:CreditCard)
RETURN cc.id as id,cc.number as number,cc.name as name,
   cc.valid_from as valid_from,cc.valid_to as valid_to
UNION
MATCH (dc:DebitCard)
RETURN dc.id as id,dc.number as number,dc.name as name,
   dc.valid_from as valid_from,dc.valid_to as valid_to

UNION ALL子句:

它结合并返回两个结果集的所有行成一个单一的结果集。它还返回由两个节点重复行。

限制:结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该是相同的,列的数据类型应该是相同的。

MATCH (cc:CreditCard)
RETURN cc.id as id,cc.number as number,cc.name as name,
   cc.valid_from as valid_from,cc.valid_to as valid_to
UNION ALL
MATCH (dc:DebitCard)
RETURN dc.id as id,dc.number as number,dc.name as name,
   dc.valid_from as valid_from,dc.valid_to as valid_to

2.15. LIMIT和SKIP子句

CQL中,LIMITSKIP 用于控制查询结果的数量和偏移。以下是它们的用法:

1. 使用 LIMIT 限制结果数量:

MATCH (n:Label)
RETURN n.property
LIMIT 10

这将返回满足条件的前 10 个节点的 "property" 属性。LIMIT 用于限制结果集的大小。 

2. 使用 SKIP 跳过指定数量的结果:

MATCH (n:Label)
RETURN n.property
SKIP 5

这将返回从满足条件的节点中跳过前 5 个节点的 "property" 属性。SKIP 用于指定结果集中要跳过的数量。 

3. 结合使用 LIMITSKIP 进行分页:

MATCH (n:Label)
RETURN n.property
SKIP 10
LIMIT 5

这将从满足条件的节点中跳过前 10 个,并返回接下来的 5 个节点的 "property" 属性。结合使用 SKIPLIMIT 可以实现分页效果

2.16. MERGE

CQL中,MERGE 用于根据指定的模式创建或匹配节点和关系。其作用是确保在图数据库中存在满足指定条件的节点和关系,如果不存在,则创建它们,如果已存在,则不做任何更改。以下是 MERGE 的一些用法示例:

1. 使用 MERGE 创建或匹配节点:

MERGE (n:Label {id: 1})
ON CREATE SET n.property = 'value'
RETURN n

这将创建一个具有标签 "Label" 和属性 "id" 值为 1 的节点,如果这样的节点已存在,则不会创建,并且如果节点是新创建的,将设置属性 "property" 为 'value'。 

2. 使用 MERGE 创建或匹配关系:

MATCH (a:Node), (b:Node)
WHERE a.id = 1 AND b.id = 2
MERGE (a)-[r:RELATIONSHIP]->(b)
ON CREATE SET r.property = 'value'
RETURN r

这将创建从节点 a 到节点 b 的关系 "RELATIONSHIP",如果这样的关系已存在,则不会创建,并且如果关系是新创建的,将设置属性 "property" 为 'value'。 

2.17. IN操作符

CQL中,IN 关键字用于筛选属性值是否在指定的值列表中。以下是 IN 的用法示例:

1. 使用 IN 进行单个属性的筛选:

MATCH (n:Label)
WHERE n.property IN ['value1', 'value2', 'value3']
RETURN n

这将返回具有标签 "Label" 并且属性 "property" 的值在 ['value1', 'value2', 'value3'] 中的节点。

 2. 使用 IN 结合其他条件进行复杂的筛选:

MATCH (n:Label)
WHERE n.type = 'Type1' AND n.status IN ['Active', 'Pending']
RETURN n

这将返回具有标签 "Label"、属性 "type" 为 'Type1' 且属性 "status" 在 ['Active', 'Pending'] 中的节点。 

3. CQL函数

3.1. 字符串函数

与SQL一样,Neo4J CQL提供了一组String函数,用于在CQL查询中获取所需的结果。 以下是一些常见的字符串函数及其用法示例:

  1. UPPERLOWER - 将字符串转为大写或小写:

    RETURN UPPER('hello') AS upper_result, LOWER('WORLD') AS lower_result

    这将返回字符串 "hello" 的大写形式和字符串 "WORLD" 的小写形式。

  2. SUBSTRING - 提取子字符串:

    RETURN SUBSTRING('Neo4j', 1, 3) AS substring_result

    这将返回从字符串 "Neo4j" 的位置 1 开始的长度为 3 的子字符串。

  3. LENGTH - 获取字符串长度:

    RETURN LENGTH('Graph Database') AS length_result

    这将返回字符串 "Graph Database" 的长度。

  4. TRIM - 去除字符串两端的空格:

    RETURN TRIM(' Hello ') AS trimmed_result

    这将返回去除了字符串两端空格的结果。

  5. CONCAT - 连接字符串:

    RETURN CONCAT('Hello', ' ', 'World') AS concatenated_result

    这将返回连接了三个字符串的结果。

3.2. AGGEGATION聚合

和SQL一样,Neo4j CQL提供了一些在RETURN子句中使用的聚合函数。 它类似于SQL中的GROUP BY子句。我们可以使用MATCH命令中的RETURN +聚合函数来处理一组节点并返回一些聚合值。以下是一些常见的聚合函数及其用法示例:

  1. COUNT - 计算匹配结果的数量:

    MATCH (n:Label) RETURN COUNT(n) AS node_count

    这将返回满足条件的节点数量。

  2. SUM - 计算数值属性的总和:

    MATCH (n:Label) RETURN SUM(n.property) AS total_property_sum

    这将返回满足条件的节点属性 "property" 的总和。

  3. AVG - 计算数值属性的平均值:

    MATCH (n:Label) RETURN AVG(n.value) AS average_value

    这将返回满足条件的节点属性 "value" 的平均值。

  4. MINMAX - 计算数值属性的最小值和最大值:

    MATCH (n:Label) RETURN MIN(n.age) AS min_age, MAX(n.age) AS max_age

    这将返回满足条件的节点属性 "age" 的最小和最大值。

  5. COLLECT - 将结果集中的值收集为列表:

    MATCH (n:Label) RETURN COLLECT(n.name) AS names

    这将返回满足条件的节点属性 "name" 的值作为列表。

3.3. 关系函数

CQL中提供了一组关系函数,以在获取开始节点,结束节点等细节时知道关系的细节。以下是一些常见的关系函数及其用法示例:

  1. TYPE - 获取关系的类型:

    MATCH (a)-[r]->(b) RETURN TYPE(r) AS relationship_type

    这将返回关系的类型,例如 "relationship_type" 可能是关系的标签。

  2. STARTNODEENDNODE - 获取关系的起始节点和结束节点:

    MATCH (a)-[r]->(b) RETURN STARTNODE(r) AS start_node, ENDNODE(r) AS end_node

    这将返回关系的起始节点和结束节点。

  3. NODES - 获取关系路径上的所有节点:

    MATCH path = (a)-[*]->(b) RETURN NODES(path) AS all_nodes

    这将返回关系路径上的所有节点的列表。

  4. LENGTH - 获取关系路径的长度(即节点之间的关系数量):

    MATCH path = (a)-[*]->(b) RETURN LENGTH(path) AS path_length

    这将返回关系路径的长度。

  5. RELATIONSHIPS - 获取关系路径上的所有关系:

    MATCH path = (a)-[*]->(b) RETURN RELATIONSHIPS(path) AS all_relationships

    这将返回关系路径上的所有关系的列表。

4.结语

        本文对Neo4j中的CQL语句和CQL函数进行了概念介绍和用例罗列,下一篇Neo4j系列文章将向大家展示我自己日常项目中积累的Neo4j中的工具类(结合Spring Boot),以及具体使用场景,喜欢这一系列内容的同学动动小手点点关注吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/441837.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【博士每天一篇文献-综述】Modular Brain Networks

阅读时间&#xff1a;2023-11-27 1 介绍 年份&#xff1a;2016 作者&#xff1a;Olaf Sporns&#xff0c;Richard Betzel&#xff0c;印第安纳大学心理与脑科学杰出教授 期刊&#xff1a; Annual review of psychology 引用量&#xff1a;1205 详细介绍了模块化大脑网络及其如…

ubuntu 卸载miniconda3

一开始安装路径错了&#xff0c;需要重新安一次&#xff0c;就一起记录了。 前提是这种方式安装&#xff1a; ubuntu安装miniconda3管理python版本-CSDN博客 删除Miniconda的安装目录 这目录就是你选择安装的时候指定的&#xff0c;如果记不得了,可以这样查看 which conda 这…

JavaWeb——013SpringBootWeb综合案例(事务管理、AOP)

事务&AOP 目录 事务&AOP1. 事务管理1.1 事务回顾1.2 Spring事务管理1.2.1 案例1.2.2 原因分析1.2.3 Transactional注解 1.3 事务进阶1.3.1 rollbackFor1.3.3 propagation1.3.3.1 介绍1.3.3.2 案例 2. AOP基础2.1 AOP概述2.2 AOP快速入门2.3 AOP核心概念 3. AOP进阶3.1 …

<商务世界>《第8课 Leads——MQL——SQL——商机——成交》

1 各种概念 英文缩写概念Traffic流量Leads潜在客户&#xff0c;销售线索&#xff1b;简称潜在线索MQLMarketing-Qualified Leads市场认可线索SQLSales-Qualified Leads销售认可线索OPPOpportunity商机Account成单客户 2 线索到商机 一般企业会把自身线索进行如下的划分&…

挑战杯 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

排序——希尔排序、插入排序

本节复习排序中的希尔排序&#xff0c;希尔排序属于插入排序。 希尔排序的代码和插入排序非常类似。 思想却相对于插入排序来说复杂。 在复习希尔排序之前&#xff0c; 我们需要先复习一下插入排序。 目录 插入排序 插入过程 代码实现 希尔排序 希尔排序的思想 代码实…

新零售SaaS架构:订单履约系统架构设计(万字图文总结)

什么是订单履约系统&#xff1f; 订单履约系统用来管理从接收客户订单到将商品送达客户手中的全过程。 它连接了上游交易&#xff08;客户在销售平台下单环&#xff09;和下游仓储配送&#xff08;如库存管理、物流配送&#xff09;&#xff0c;确保信息流顺畅、操作协同&…

0201安装报错-hbase-大数据学习

1 基础环境简介 linux系统&#xff1a;centos&#xff0c;前置安装&#xff1a;jdk、hadoop、zookeeper&#xff0c;版本如下 软件版本描述centos7linux系统发行版jdk1.8java开发工具集hadoop2.10.0大数据生态基础组件zookeeper3.5.7分布式应用程序协调服务hbase2.4.11分布式…

算法刷题Day3 | 203.移除链表元素、707.设计链表、206.反转链表

目录 0 容易被大家忽略的问题1 移除链表元素1.1 开始的错误解题1.2 头结点和头指针的区别1.2.1 区别1.2.2 思考 1.3 正确的题解1.3.1 直接移除法1.3.2 添加虚拟头节点辅助移除法1.3.3 总结 2 设计链表2.1 我的解题 3 反转链表3.1 我的解题3.2 其他方法&#xff08;双指针法、递…

【硬件工程师面经整理24_其它】

文章目录 1 功放线性指标调试方法2 功放线性指标之间的关系3 光衰减器的原理4 材料硬度由什么决定&#xff1f;5 晶振市场失效率&#xff1f;6 原码、反码和补码 1 功放线性指标调试方法 调试功放线性指标的方法可以根据具体的情况和要求而有所不同&#xff0c;以下是一般性的…

房屋租赁系统|基于 Mysql+Java+JSP技术的房屋租赁系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

目录 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 源码获取 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 随着科学技术的飞速发展&#xff0c;社会的方方面面…

荔枝派zero驱动开发06:GPIO操作(platform框架)

参考&#xff1a; 正点原子Linux第五十四章 platform设备驱动实验 一张图掌握 Linux platform 平台设备驱动框架 上一篇&#xff1a;荔枝派zero驱动开发05&#xff1a;GPIO操作&#xff08;使用GPIO子系统&#xff09; 下一篇&#xff1a;更新中… 概述 platform是一种分层思…

Mac测试环境搭建

1 下载pycharm 下载地址&#xff1a;PyCharm&#xff1a;JetBrains 出品的用于数据科学和 Web 开发的 Python IDE 2 安装python3.6.8 下载地址&#xff1a;Index of /ftp/python/3.6.8/ 安装后提示错误 换一种方式&#xff1a;用conda 下载地址&#xff1a;Free Download | …

实现QT中qDebug()的日志重定向

背景&#xff1a; 在项目开发过程中&#xff0c;为了方便分析和排查问题&#xff0c;我们需要将原本输出到控制台的调试信息写入日志文件&#xff0c;进行持久化存储&#xff0c;还可以实现日志分级等。 日志输出格式&#xff1a; 我们需要的格式包括以下内容&#xff1a; 1.…

鸡肋的Git

1.前言 对于大多数开发人员来说&#xff0c;我们大多数在学习或者工作过程中只关注核心部分&#xff0c;比如说学习Java&#xff0c;可能对于大多数人而言一开始都是从Java基础学起&#xff0c;然后408&#xff0c;Spring&#xff0c;中间件等&#xff0c;当你发现很多高深的技…

红队专题-开源漏扫-巡风xunfeng源码剖析与应用

开源漏扫-巡风xunfeng 介绍主体两部分:网络资产识别引擎,漏洞检测引擎。代码赏析插件编写JSON标示符Python脚本此外系统内嵌了辅助验证功能文件结构功能 模块添加IP三. 进行扫描在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de587a6f6f694…

html前端的几种加密/解密方式

HTML前端的加密解密方式有以下几种&#xff1a; 一、base64加密 Base64编码&#xff1a;Base64是一种将二进制数据转换为可打印字符的编码方式。在前端&#xff0c;可以使用JavaScript的btoa()函数进行Base64编码&#xff0c;使用atob()函数进行解码。 var str "hello…

二维码门楼牌管理系统在教育领域的应用及其优势

文章目录 前言一、二维码门楼牌管理系统概述二、教育领域的应用场景三、二维码门楼牌管理系统的优势四、结语 前言 随着信息技术的快速发展&#xff0c;二维码门楼牌管理系统在教育领域的应用越来越广泛。该系统不仅提高了地址信息的准确性&#xff0c;还为学校、家长和教育工…

Feign实现微服务间远程调用续;基于Redis实现消息队列用于延迟任务的处理,Redis分布式锁的实现;(黑马头条Day05)

目录 延迟任务和定时任务 使用Redis设计延迟队列原理 点评项目中选用list和zset两种数据结构进行实现 如何缓解Redis内存的压力同时保证Redis中任务能够被正确消费不丢失 系统流程设计 使用Feign实现微服务间的任务消费以及文章自动审核 系统微服务功能介绍 提交文章-&g…

C#,数值计算,解微分方程的龙格-库塔四阶方法与源代码

Carl Runge Martin Wilhelm Kutta 1 龙格-库塔四阶方法 数值分析中&#xff0c;龙格&#xff0d;库塔法&#xff08;Runge-Kutta&#xff09;是用于模拟常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔龙格和马丁威尔海姆库塔于1900年左右发明。 对于一阶…