Docker:Docker部署Neo4j图数据库

Docker:Docker部署Neo4j图数据库

Docker:Docker部署Neo4j图数据库

前言

Neo4j是一个高性能的,基于java开发的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中;它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。

Neo4j分为企业版和社区版,企业版可以创建多个数据库,链接多个数据库,但是收费……;社区版只能链接一个数据库,所以社区版不支持创建数据库命令。

Neo4j部署后默认创建名字为 neo4j 的数据库,可以直接链接这个数据库

拉取镜像

# 下载镜像 docker pull neo4j:5.26.2 

也可以不指定版本

构建容器

# 创建neo4j容器 docker run -it -d -p 7474:7474 -p 7687:7687 \ -v /home/neo4j/data:/data \ -v /home/neo4j/logs:/logs \ -v /home/neo4j/conf:/var/lib/neo4j/conf \ -v /home/neo4j/import:/var/lib/neo4j/import \ -v /home/neo4j/plugins:/var/lib/neo4j/plugins \ -e NEO4J_AUTH=neo4j/password \ --name neo4j neo4j:5.26.2 

-p 7474:7474 宿主机端口映射,7474端口为Neo4j界面访问端口

-p 7687:7687 宿主机端口映射,7687端口为后台API接口访问端口

-v /home/neo4j/data:/data 宿主机目录挂载,将Neo4j存储数据挂载到宿主机目录

-v /home/neo4j/logs:/logs 宿主机目录挂载,将Neo4j运行日志挂载到宿主机目录

-v /home/neo4j/conf:/var/lib/neo4j/conf 宿主机目录挂载,将Neo4j配置文件挂载到宿主机目录

-v /home/neo4j/import:/var/lib/neo4j/import 宿主机目录挂载,将Neo4j数据导入目录挂载到宿主机目录

-v /home/neo4j/plugins:/var/lib/neo4j/plugins 宿主机目录挂载,将Neo4j插件安装目录挂载到宿主机目录

-e NEO4J_AUTH=neo4j/password 配置Neo4j的登录密码,用户名必须是neo4j,密码可以自定义

访问界面

访问地址:http://{{目标地址}}:7474/browser/
本地部署的话就是 localhost,作者这里使用的是腾讯云服务器,使用云服务器记得开发7474端口

数据备份与恢复

停止容器

不管是导入或导出操作,第一步一定要将已启动的Neo4j停止(不是删除,是停止)

# 停止容器 docker stop neo4j 
#### 导出neo4j数据 docker run --interactive --tty --rm \ --volume=/home/neo4j/data:/data \ --volume=/home/neo4j/backups:/var/lib/neo4j/import \ --name neo4j_demo neo4j:5.26.2 \ neo4j-admin database dump neo4j --to-path=/var/lib/neo4j/import/ 

–interactive 提示Docker保持标准输入流(stdin,标准输入)对容器开放,允许用户通过命令行直接与容器交互,进行实时操作和调试。

–tty 提示Docker 为容器分配一个虚拟终端,允许发信号给容器进行实时操作。

–rm 容器完成操作并停止后自动删除容器。

-v /home/neo4j/data:/data 引用刚才停止的Neo4j容器存储的数据

-v /home/neo4j/backups:/var/lib/neo4j/import 将数据导出后通过容器映射目录到宿主机的 /home/neo4j/backup 目录

neo4j-admin database dump neo4j --to-path=/var/lib/neo4j/import/ 导出命令,在容器内使用 neo4j-admin 工具将 neo4j 数据库备份,备份文件存到容器内 /var/lib/neo4j/import/ 目录(实际则会通过映射存到宿主机对应的挂载目录 /home/neo4j/backups )

–name neo4j_demo 重点:这里的容器名称不能和已停止的容器重名!!!!

导入数据

#- - - - - - - - - - - - - - 新版本 - - - - - - - - - - - - - - - #### 5.1版本之后,新版本导入neo4j数据(如果数据库存在会报错) docker run -it --rm \ --volume=/home/neo4j/data:/data \ --volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:5.26.2 \ neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j #### 5.1版本之后,新版本强制导入neo4j数据(无视数据库是否存在直接覆盖) docker run -it --rm \ --volume=/home/neo4j/data:/data \ --volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:5.26.2 \ neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j \ --overwrite-destination=true #- - - - - - - - - - - - - - 旧版本 - - - - - - - - - - - - - - - - #### 5.1版本之前,旧版本的导入命令(如果数据库存在会报错) docker run -it --rm \ --volume=/home/neo4j/data:/data \ --volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:4.4.40 \ neo4j-admin load --from=/var/lib/neo4j/import/neo4j.dump --database=neo4j #### 5.1版本之前,旧版本的强制导入命令(无视数据库是否存在直接覆盖) docker run -it --rm \ --volume=/home/neo4j/data:/data \ --volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:4.4.40 \ neo4j-admin load --from=/var/lib/neo4j/import/neo4j.dump --database=neo4j --force #- - - - - - - - - - 旧版本文件导入新版本数据库 - - - - - - - - - - - - #### 旧版本的数据文件强制导入新版本数据库内(无视数据库是否存在直接覆盖) docker run -it --rm \ --volume=/home/neo4j/data:/data \ --volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:5.26.2 \ sh -c "neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j --overwrite-destination=true && neo4j-admin database migrate neo4j --force-btree-indexes-to-range" 

–rm 容器完成操作并停止后自动删除容器。

-v /home/neo4j/data:/data 引用刚才停止的Neo4j容器存储的数据,目的是将数据导入到这个数据映射目录内

-v /home/neo4j/import:/var/lib/neo4j/import 将刚才导出的文件改名 “neo4j.dump”后,复制到/home/neo4j/import目录下,通过挂载机制会自动映射到容器内的 /home/neo4j/import 目录

neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j 导入命令,在容器内使用 neo4j-admin 工具将 /var/lib/neo4j/import 目录下的“neo4j.dump”文件导入到neo4j数据库内

–overwrite-destination=true 强制导入,无视数据库是否存在直接覆盖

重启先前停止的容器

# 重启Neo4j容器 docker start neo4j 

Read more

RMBG-2.0多任务协同方案:接入Stable Diffusion工作流,生成→抠图→合成一体化

RMBG-2.0多任务协同方案:接入Stable Diffusion工作流,生成→抠图→合成一体化 1. 为什么抠图成了AI图像工作流的“卡点”? 你有没有遇到过这样的场景:用Stable Diffusion生成了一张绝美的角色立绘,但背景太杂乱,想换到电商详情页却卡在了抠图环节?手动PS耗时半小时,AI在线工具又担心图片上传泄露隐私,还动不动就崩掉——毛发边缘糊成一片,玻璃杯透明感全无,甚至把飘动的发丝直接切掉。 这不是个别现象。大量设计师、内容创作者、电商运营者反馈:生成容易,落地难;模型很炫,流程断在抠图这一步。 而RMBG-2.0(BiRefNet)的出现,正在悄悄改变这个局面。它不是又一个“差不多能用”的抠图工具,而是首个真正意义上能无缝嵌入本地AI图像工作流的高精度、低延迟、零隐私风险抠图引擎。它不只解决“能不能抠”,更解决“抠完怎么用”——直接对接SD WebUI、ComfyUI、乃至自定义Python脚本,让“生成→

Unity 无人机物理模拟开发日志:从零打造穿越机手感

Unity 无人机物理模拟开发日志:从零打造穿越机手感

Unity 无人机物理模拟开发日志:从零打造穿越机手感 摘要:本文记录了在 Unity 中构建一个高拟真 FPV 穿越机(Drone)物理模拟系统的过程。从基础的 PID 控制到引入空气动力学阻力、地面效应和电机惯性,一步步逼近真实的飞行手感。 环境:Unity 2022.3.57c1f1Window10 开源仓库地址 Unity引擎开发的无人机模拟系统 演示视频: Unity无人机仿真-bilbil 一、功能介绍 输入系统 最初的实现使用键盘鼠标控制,但这对于模拟穿越机来说完全不够。真实的穿越机需要细腻的模拟量输入。 核心物理引擎 Unity 的 Rigidbody 提供了基础物理,但要飞得像穿越机,必须手动计算力和力矩。 PID 控制器 (Rate Loop) 这是飞控的灵魂。我们实现了三个独立的 PID 控制器分别控制 Pitch、Roll 和 Yaw

2026四款AI 低代码集成实战

2026四款AI 低代码集成实战

一、引言: 作为一名常年打交道AI应用开发的程序员,近半年明显感觉到低代码AI平台的爆发式增长——越来越多团队不想重复造轮子,希望通过现成平台快速落地智能体、知识库问答这类应用。但市面上平台鱼龙混杂,有的侧重单一功能,有的看似全面却暗藏坑点,比如部署复杂、商用授权模糊、扩展性差等。 这次筛选了当前热度较高的四款工具:FastGPT(主打模型与知识库)、ToolLLM(专注自动化编排)、Langfuse(聚焦监控观测)、BuildingAI(一体化平台)。测评全程站在中立技术视角,不看营销噱头,只谈真实开发体验——从搭建简单问答应用,到部署企业级服务,逐一测试核心功能,记录踩坑过程与解决思路,最终给出不同场景下的选择建议。 二、测试环境(简述) 服务器配置:4核8G云服务器(Ubuntu 22.04 LTS),带宽10M;本地开发环境:MacBook Pro M2,16G内存。所有平台均优先采用Docker部署(官方推荐方式),测试用例统一为“搭建企业产品知识库问答应用”,包含模型接入、

Java编程进阶:智能仿真无人机项目4.0

Java编程进阶:智能仿真无人机项目4.0

一、项目前期准备 V4 版本在 V3 “双向对抗” 基础上,新增定点任务处理、鼠标交互、多线程协作、状态机管理四大核心功能,新手需在 V3 基础(集合、线程通信、扫描攻击)上,额外掌握以下知识点: 1. 鼠标事件监听(MouseListener) * 作用:捕捉鼠标操作(点击、按压、释放等),实现 “鼠标点击生成任务” 的交互; * 核心接口:MouseListener,需重写 5 个方法(重点用mousePressed:鼠标按压时触发); * 关键步骤:给窗口注册鼠标监听器→重写mousePressed方法→获取鼠标点击坐标。 2. 距离计算(勾股定理) * 作用:找到 “离任务点最近的无人机”,实现任务分配逻辑; 代码实现: (int)