1. ArangoDB数据库简介
ArangoDB是开源的多模型数据库,支持文档、图和键值对三种数据模型。ArangoDB以其灵活的数据模型、强大的查询语言AQL和水平扩展能力著称,特别适合需要多种数据模型的应用场景。更多学习教程www.fgedu.net.cn
ArangoDB核心特点
多模型支持:文档、图、键值对三种数据模型统一存储
AQL查询语言:强大的ArangoDB查询语言,支持复杂查询
水平扩展:支持分片和复制,处理大规模数据
事务支持:支持ACID事务,保证数据一致性
丰富生态:支持多种编程语言驱动和可视化工具
2. ArangoDB版本说明
ArangoDB提供社区版和企业版,用户可根据需求选择。学习交流加群风哥微信: itpux-com
最新版本信息
ArangoDB 3.12.4:最新稳定版本
ArangoDB 3.11.12:稳定版本,广泛使用
ArangoDB 3.10.x:历史稳定版本
版本类型
Community版:免费开源版本,功能完整
Enterprise版:商业版本,支持企业级功能
ArangoGraph:ArangoDB云托管服务
3. ArangoDB下载地址
ArangoDB可以从官方网站获取安装包。
官方下载地址
官方网站:https://www.arangodb.com/download/
下载中心:https://download.arangodb.com/
文档中心:https://docs.arangodb.com/
下载安装包
# cd /fgeudb/software
# wget https://download.arangodb.com/arangodb312/Community/RPM/arangodb3-3.12.4-1.0.x86_64.rpm
# 输出示例如下:
–2026-04-04 10:00:00– https://download.arangodb.com/arangodb312/Community/RPM/arangodb3-3.12.4-1.0.x86_64.rpm
Resolving download.arangodb.com… 151.101.2.132
Connecting to download.arangodb.com|151.101.2.132|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 104857600 (100M) [application/x-rpm]
Saving to: ‘arangodb3-3.12.4-1.0.x86_64.rpm’
arangodb3-3.12.4-1.0.x86_64.rpm 100%[===================>] 100.00M 18.5MB/s in 5.4s
2026-04-04 10:00:10 (18.5 MB/s) – ‘arangodb3-3.12.4-1.0.x86_64.rpm’ saved
# 验证下载文件
# ls -lh arangodb3-3.12.4-1.0.x86_64.rpm
-rw-r–r–. 1 root root 100M Apr 4 10:00 arangodb3-3.12.4-1.0.x86_64.rpm
4. 环境准备
在安装ArangoDB之前,需要准备必要的系统环境。
系统要求
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
# 检查系统架构
# uname -m
x86_64
# 检查内存和磁盘空间
# free -h
total used free shared buff/cache available
Mem: 31G 2.1G 28G 8.5M 1.0G 28G
Swap: 15G 0B 15G
# df -h /fgeudb
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 500G 20G 480G 4% /fgeudb
# 创建ArangoDB用户和组
# groupadd -g 5010 arangodb
# useradd -g arangodb -u 5010 -d /home/arangodb -s /bin/bash arangodb
# 创建安装目录
# mkdir -p /fgeudb/arangodb/{data,apps,logs}
# chown -R arangodb:arangodb /fgeudb/arangodb
# 配置系统参数
# vi /etc/sysctl.conf
fs.file-max = 65535
vm.max_map_count = 262144
vm.swappiness = 1
# 使配置生效
# sysctl -p
# 配置文件描述符限制
# vi /etc/security/limits.conf
arangodb soft nofile 65535
arangodb hard nofile 65535
5. RPM包安装实战
使用RPM包安装是最简单的方式,以下是详细步骤。学习交流加群风哥QQ113257174
步骤1:安装RPM包
# rpm -ivh arangodb3-3.12.4-1.0.x86_64.rpm
# 输出示例如下:
Preparing… ################################# [100%]
Updating / installing…
1:arangodb3-3.12.4-1.0 ################################# [100%]
# 查看安装目录
# ls -la /etc/arangodb3/
total 16
drwxr-xr-x. 2 root root 4096 Apr 4 10:05 .
drwxr-xr-x. 3 root root 4096 Apr 4 10:00 ..
-rw-r–r–. 1 root root 5120 Apr 4 10:05 arangod.conf
-rw-r–r–. 1 root root 1024 Apr 4 10:05 arangosh.conf
# 查看二进制文件
# ls -la /usr/bin/arango*
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangobackup
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangod
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangodump
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangoexport
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangoimport
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangorestore
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangosh
-rwxr-xr-x. 1 root root 5120000 Apr 4 10:05 /usr/bin/arangostat
步骤2:配置ArangoDB
# vi /etc/arangodb3/arangod.conf
# 服务器配置
[server]
endpoint = tcp://0.0.0.0:8529
authentication = true
jwt-secret = YourSecretKey123!
# 存储配置
[database]
directory = /fgeudb/arangodb/data
# 日志配置
[log]
level = info
file = /fgeudb/arangodb/logs/arangod.log
# 网络配置
[network]
max-open-connections = 1024
# 内存配置
[memory]
global-allocator = tcmalloc
# 保存配置文件
# 初始化数据库
# arangod –server.endpoint tcp://127.0.0.1:8529 \
–database.directory /fgeudb/arangodb/data \
–log.file /fgeudb/arangodb/logs/arangod.log \
–server.authentication false &
# 等待服务启动
# sleep 5
# 设置root密码
# arangosh –server.endpoint tcp://127.0.0.1:8529 \
–server.authentication false \
–javascript.execute-string “require(‘org/arangodb/users’).update(‘root’, ‘YourSecurePassword123!’)”
# 输出示例如下:
true
# 停止临时服务
# pkill arangod
步骤3:启动ArangoDB服务
# systemctl start arangodb3
# 设置开机自启
# systemctl enable arangodb3
# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/arangodb3.service to /usr/lib/systemd/system/arangodb3.service.
# 检查服务状态
# systemctl status arangodb3
● arangodb3.service – ArangoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/arangodb3.service; enabled)
Active: active (running) since Fri 2026-04-04 10:15:00 CST; 10s ago
Main PID: 12345 (arangod)
CGroup: /system.slice/arangodb3.service
└─12345 /usr/sbin/arangod –uid arangodb –gid arangodb –pid-file /var/run/arangodb3/arangod.pid
# 检查端口
# netstat -tlnp | grep arangod
tcp 0 0 0.0.0.0:8529 0.0.0.0:* LISTEN 12345/arangod
6. Docker容器安装实战
使用Docker容器安装ArangoDB是最快捷的方式,适合快速测试和开发环境。更多学习教程公众号风哥教程itpux_com
步骤1:拉取ArangoDB镜像
# docker pull arangodb/arangodb:3.12.4
# 输出示例如下:
3.12.4: Pulling from arangodb/arangodb
f1f26f570256: Pull complete
8f8e43ef9c3a: Pull complete
e9d8dca5b8a5: Pull complete
a1b8d4c4a5e6: Pull complete
Digest: sha256:abc123def456…
Status: Downloaded newer image for arangodb/arangodb:3.12.4
docker.io/arangodb/arangodb:3.12.4
# 查看镜像
# docker images | grep arangodb
arangodb/arangodb 3.12.4 abc123def456 2 weeks ago 400MB
步骤2:运行ArangoDB容器
# mkdir -p /fgeudb/arangodb/{data,apps,logs}
# 运行ArangoDB容器
# docker run -d \
–name arangodb \
-p 8529:8529 \
-v /fgeudb/arangodb/data:/var/lib/arangodb3 \
-v /fgeudb/arangodb/apps:/var/lib/arangodb3-apps \
-v /fgeudb/arangodb/logs:/var/log/arangodb3 \
-e ARANGO_ROOT_PASSWORD=YourSecurePassword123! \
arangodb/arangodb:3.12.4
# 输出示例如下:
abc123def456789…
# 检查容器状态
# docker ps | grep arangodb
abc123def456 arangodb/arangodb:3.12.4 “/entrypoint.sh aran…” 10 seconds ago Up 9 seconds 0.0.0.0:8529->8529/tcp arangodb
# 查看容器日志
# docker logs arangodb
# 输出示例如下:
2026-04-04T10:20:00Z [1] INFO ArangoDB (version 3.12.4 [linux]) is ready for business. Have fun!
2026-04-04T10:20:00Z [1] INFO Your database can be reached at http://192.168.1.51:8529/
7. ArangoDB配置优化
以下是生产环境的ArangoDB配置优化建议。
服务器配置优化
# vi /etc/arangodb3/arangod.conf
# 服务器配置
[server]
endpoint = tcp://0.0.0.0:8529
authentication = true
jwt-secret = YourSecretKey123!
server.threads = 16
maximal-queue-size = 4096
request-timeout = 600
# 存储引擎配置
[rocksdb]
max-memory-usage = 8589934592
max-write-buffer-size = 1073741824
write-buffer-size = 67108864
max-write-buffer-number = 4
target-file-size-base = 67108864
block-cache-size = 4294967296
cache-index-and-filter-blocks = true
pin-l0-filter-and-index-blocks = true
# 并发配置
[server]
scheduler-threads = 16
maximal-threads = 32
# 内存配置
[memory]
global-allocator = tcmalloc
global-allocation-limit = 17179869184
# 保存配置文件
集群配置
# vi /etc/arangodb3/arangod.conf
# 集群配置
[cluster]
my-address = tcp://192.168.1.51:8529
my-local-info = tcp://192.168.1.51:8529
my-role = COORDINATOR
# Agency配置
[agency]
my-address = tcp://192.168.1.51:8529
agency-endpoint = tcp://192.168.1.51:8529,tcp://192.168.1.52:8529,tcp://192.168.1.53:8529
agency-size = 3
agency-my-index = 0
# 分片配置
[cluster]
number-of-shards = 6
number-of-replicas = 2
# 保存配置文件
8. 安装验证与测试
安装完成后,需要进行验证测试确保ArangoDB正常运行。
访问ArangoDB Web界面
# URL: http://192.168.1.51:8529/
# 登录信息
# 用户名: root
# 密码: YourSecurePassword123!
# ArangoDB Web界面功能:
# – 数据库管理
# – 集合管理
# – AQL查询编辑器
# – 图可视化
# – 用户管理
# – 服务监控
使用arangosh连接
$ arangosh –server.endpoint tcp://192.168.1.51:8529 –server.username root –server.password YourSecurePassword123!
# 输出示例如下:
Please specify a password:
_
__ _ _ __ __ _ _ __ __ _ ___ ___| |__
/ _` | ‘__/ _` | ‘_ \ / _` |/ _ \/ __| ‘_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
\__,_|_| \__,_|_| |_|\__, |\___/|___/_| |_|
|___/
arangosh (ArangoDB 3.12.4 [linux] 64bit)
Connected to ArangoDB ‘http+tcp://192.168.1.51:8529’, database: ‘_system’, username: ‘root’
Type ‘tutorial’ for a tutorial or ‘help’ to see common examples
127.0.0.1@_system>
# 查看版本
127.0.0.1@_system> db._version();
3.12.4
# 查看数据库
127.0.0.1@_system> db._databases();
[
“_system”
]
# 查看服务器状态
127.0.0.1@_system> require(“internal”).statistics();
{
“server” : {
“version” : “3.12.4”,
“mode” : “server”,
“uptime” : 3600
},
“client” : {
“httpConnections” : 1,
“totalTime” : 0.001
}
}
创建数据库和集合
127.0.0.1@_system> db._createDatabase(“testdb”);
true
# 使用数据库
127.0.0.1@_system> db._useDatabase(“testdb”);
true
# 创建文档集合
127.0.0.1@testdb> db._create(“users”);
[ArangoCollection 100, “users” (type document, status loaded)]
# 创建边集合
127.0.0.1@testdb> db._createEdgeCollection(“follows”);
[ArangoCollection 101, “follows” (type edge, status loaded)]
# 查看集合
127.0.0.1@testdb> db._collections();
[
[ArangoCollection 100, “users” (type document, status loaded)],
[ArangoCollection 101, “follows” (type edge, status loaded)]
]
插入和查询数据
127.0.0.1@testdb> db.users.insert({name: “Zhang San”, age: 30, city: “Beijing”});
{
“_id” : “users/102”,
“_key” : “102”,
“_rev” : “_abc123–”
}
127.0.0.1@testdb> db.users.insert({name: “Li Si”, age: 28, city: “Shanghai”});
{
“_id” : “users/103”,
“_key” : “103”,
“_rev” : “_def456–”
}
127.0.0.1@testdb> db.users.insert({name: “Wang Wu”, age: 32, city: “Guangzhou”});
{
“_id” : “users/104”,
“_key” : “104”,
“_rev” : “_ghi789–”
}
# 插入边数据
127.0.0.1@testdb> db.follows.insert({_from: “users/102”, _to: “users/103”, since: 2018});
{
“_id” : “follows/105”,
“_key” : “105”,
“_rev” : “_jkl012–“,
“_from” : “users/102”,
“_to” : “users/103”,
“since” : 2018
}
# 使用AQL查询文档
127.0.0.1@testdb> db._query(“FOR u IN users RETURN u.name”);
[
“Zhang San”,
“Li Si”,
“Wang Wu”
]
# 使用AQL查询带条件
127.0.0.1@testdb> db._query(“FOR u IN users FILTER u.age > 29 RETURN u”);
[
{
“_key” : “102”,
“_id” : “users/102”,
“_rev” : “_abc123–“,
“name” : “Zhang San”,
“age” : 30,
“city” : “Beijing”
},
{
“_key” : “104”,
“_id” : “users/104”,
“_rev” : “_ghi789–“,
“name” : “Wang Wu”,
“age” : 32,
“city” : “Guangzhou”
}
]
# 使用AQL查询图遍历
127.0.0.1@testdb> db._query(“FOR v, e, p IN 1..2 OUTBOUND ‘users/102’ follows RETURN p”);
[
{
“vertices” : [
{
“_key” : “102”,
“_id” : “users/102”,
“name” : “Zhang San”,
“age” : 30,
“city” : “Beijing”
},
{
“_key” : “103”,
“_id” : “users/103”,
“name” : “Li Si”,
“age” : 28,
“city” : “Shanghai”
}
],
“edges” : [
{
“_key” : “105”,
“_id” : “follows/105”,
“_from” : “users/102”,
“_to” : “users/103”,
“since” : 2018
}
]
}
]
# 退出
127.0.0.1@testdb> exit
REST API测试
$ curl -X GET “http://192.168.1.51:8529/_api/version” \
-u root:YourSecurePassword123!
# 输出示例如下:
{
“server”: “arango”,
“version”: “3.12.4”,
“license”: “community”,
“details”: {
“architecture”: “64bit”,
“server-version”: “3.12.4”
}
}
# 查询数据
$ curl -X POST “http://192.168.1.51:8529/_api/cursor” \
-u root:YourSecurePassword123! \
-H “Content-Type: application/json” \
-d ‘{“query”: “FOR u IN users RETURN u.name”}’
# 输出示例如下:
{
“result”: [“Zhang San”, “Li Si”, “Wang Wu”],
“hasMore”: false,
“cached”: false,
“extra”: {
“stats”: {
“writesExecuted”: 0,
“writesIgnored”: 0,
“scannedFull”: 3,
“scannedIndex”: 0
},
“warnings”: []
},
“error”: false,
“code”: 201
}
至此,ArangoDB多模型数据库的下载和安装已完成。后续可以根据实际业务需求创建数据库、设计集合和优化查询。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
