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

AnythingLLM集成Whisper实战:如何实现高效语音转文本处理

快速体验 在开始今天关于 AnythingLLM集成Whisper实战:如何实现高效语音转文本处理 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 AnythingLLM集成Whisper实战:如何实现高效语音转文本处理 语音转文本(ASR)在现代应用中越来越重要,但很多开发者在实际部署时都会遇到效率瓶颈。本文将详细介绍如何将Whisper语音识别模型高效集成到AnythingLLM中,解决这些性能问题。 当前语音转文本的痛点分析 1. 处理延迟高:传统

在Windows11利用llama.cpp调用Qwen3.5量化模型测试

1.下载llama.cpp二进制文件 访问 https://github.com/ggml-org/llama.cpp/releases 或者 https://bgithub.xyz/ggml-org/llama.cpp/releases 选择适合自己平台的。我没有独立显卡,所以选择CPU版本 https://bgithub.xyz/ggml-org/llama.cpp/releases/download/b8192/llama-b8192-bin-win-cpu-x64.zip 解压到\d\llama8\目录。 2.下载量化模型 按照 章北海mlpy 公众号:Ai学习的老章~ID:mindszhang666 写的知乎文章Qwen3.5 0.8B/2B/

揭秘VSCode Copilot无法登录原因:5步快速恢复访问权限

第一章:VSCode Copilot无法登录问题概述 Visual Studio Code(VSCode)中的GitHub Copilot作为一款智能代码补全工具,极大提升了开发者的编码效率。然而,在实际使用过程中,部分用户频繁遭遇Copilot无法正常登录的问题,导致功能受限或完全不可用。该问题可能由多种因素引发,包括网络连接异常、身份验证失效、插件配置错误或系统环境限制等。 常见表现形式 * 点击“Sign in to GitHub”后无响应或弹窗无法加载 * 登录完成后仍提示“GitHub authentication failed” * Copilot状态始终显示为“Not signed in” 基础排查步骤 1. 确认网络可正常访问GitHub服务,必要时配置代理 2. 检查VSCode是否已更新至最新版本 3. 重新安装GitHub Copilot及GitHub Authentication扩展 验证身份认证状态 可通过开发者工具查看认证请求是否成功发出。在VSCode中按 F1,输入 Developer: Open

Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家

Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家 在鸿蒙跨平台应用执行大型语言模型(LLM)的流式交互(如实时获取大模型生成的结构化 JSON 数据、处理非完整的 JSON 片段解析或是实现一个具备极致反馈速度的 AI 驱动表单)时,如果依赖传统的 jsonDecode,极易在处理“不完整字符串(Chunk)”、“语法中断”或“非预期的文本噪声”时陷入解析异常死循环。如果你追求的是一种完全对齐流式解析规范、支持实时恢复 JSON 结构且具备极致容错性能的方案。今天我们要深度解析的 llm_json_stream—