1. RavenDB数据库简介
RavenDB是一款高性能的ACID文档数据库,专为.NET平台设计,同时支持跨平台运行。RavenDB以其易用性、自动索引和分布式特性著称,特别适合现代应用程序开发。更多学习教程www.fgedu.net.cn
RavenDB核心特点
ACID事务:完全支持ACID事务,保证数据一致性
自动索引:自动创建和管理索引,无需手动维护
分布式架构:支持多节点集群,自动数据分片和复制
LINQ查询:支持LINQ语法查询,与.NET无缝集成
跨平台:支持Windows、Linux、Docker和Kubernetes
2. RavenDB版本说明
RavenDB提供社区版和专业版,用户可根据需求选择。学习交流加群风哥微信: itpux-com
最新版本信息
RavenDB v7.2:最新稳定版本,包含新特性和性能优化
RavenDB v7.1:稳定版本,广泛使用
RavenDB v6.x:历史稳定版本
RavenDB v5.x:长期支持版本
版本类型
Community版:免费开源版本,功能完整,适合开发测试
Professional版:商业版本,包含企业级支持和高级功能
Enterprise版:企业版本,包含所有高级功能
3. RavenDB下载地址
RavenDB可以从官方网站或GitHub获取安装包。
官方下载地址
官方网站:https://ravendb.net/download
GitHub仓库:https://github.com/ravendb/ravendb
下载安装包
# cd /fgeudb/software
# wget https://daily-builds.s3.amazonaws.com/RavenDB-7.2-linux-x64.tar.bz2
# 输出示例如下:
–2026-04-04 10:00:00– https://daily-builds.s3.amazonaws.com/RavenDB-7.2-linux-x64.tar.bz2
Resolving daily-builds.s3.amazonaws.com… 52.216.128.211
Connecting to daily-builds.s3.amazonaws.com|52.216.128.211|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 157286400 (150M) [application/x-bzip2]
Saving to: ‘RavenDB-7.2-linux-x64.tar.bz2’
RavenDB-7.2-linux-x64.tar.bz2 100%[===================>] 150.00M 20.5MB/s in 7.3s
2026-04-04 10:00:10 (20.5 MB/s) – ‘RavenDB-7.2-linux-x64.tar.bz2’ saved
# 验证下载文件
# ls -lh RavenDB-7.2-linux-x64.tar.bz2
-rw-r–r–. 1 root root 150M Apr 4 10:00 RavenDB-7.2-linux-x64.tar.bz2
4. 环境准备
在安装RavenDB之前,需要准备必要的系统环境。
系统要求
# 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
# 创建RavenDB用户和组
# groupadd -g 5004 ravendb
# useradd -g ravendb -u 5004 -d /home/ravendb -s /bin/bash ravendb
# 创建安装目录
# mkdir -p /fgeudb/ravendb/{data,logs,config}
# chown -R ravendb:ravendb /fgeudb/ravendb
安装依赖
# yum install -y libicu-devel openssl-devel
# 检查依赖库
# ldd –version
ldd (GNU libc) 2.17
# 安装unzip工具(用于解压)
# yum install -y bzip2
5. Linux系统安装实战
以下是在Linux系统上安装RavenDB的详细步骤。学习交流加群风哥QQ113257174
步骤1:解压安装包
# cd /fgeudb/software
# tar -xjf RavenDB-7.2-linux-x64.tar.bz2 -C /fgeudb/ravendb/
# 输出示例如下:
# ls -la /fgeudb/ravendb/
total 16
drwxr-xr-x. 3 root root 4096 Apr 4 10:05 .
drwxr-xr-x. 3 root root 4096 Apr 4 10:00 ..
drwxr-xr-x. 8 root root 4096 Apr 4 10:05 RavenDB
# 查看解压内容
# ls -la /fgeudb/ravendb/RavenDB/
total 512
drwxr-xr-x. 2 root root 4096 Apr 4 10:05 .
drwxr-xr-x. 8 root root 4096 Apr 4 10:05 ..
-rwxr-xr-x. 1 root root 524288 Apr 4 10:05 Raven.Server
-rwxr-xr-x. 1 root root 262144 Apr 4 10:05 rvn
-rw-r–r–. 1 root root 5120 Apr 4 10:05 settings.json
-rw-r–r–. 1 root root 1024 Apr 4 10:05 LICENSE.txt
drwxr-xr-x. 2 root root 4096 Apr 4 10:00 run
步骤2:配置RavenDB
# vi /fgeudb/ravendb/RavenDB/settings.json
# 修改以下配置
{
“ServerUrl”: “http://192.168.1.51:8080”,
“DataDir”: “/fgeudb/ravendb/data”,
“Logs.Path”: “/fgeudb/ravendb/logs”,
“Indexing.RunInMemory”: false,
“Core.RunInMemory”: false,
“Security.UnsecuredAccessAllowed”: “PrivateNetwork”,
“Setup.Mode”: “None”
}
# 设置目录权限
# chown -R ravendb:ravendb /fgeudb/ravendb
步骤3:启动RavenDB
# su – ravendb
# 启动RavenDB服务器
$ cd /fgeudb/ravendb/RavenDB
$ ./Raven.Server –config-path settings.json
# 输出示例如下:
2026-04-04 10:10:00.0000|Info|Starting RavenDB Server…
2026-04-04 10:10:01.0000|Info|Server started on http://192.168.1.51:8080
2026-04-04 10:10:01.0000|Info|Data directory: /fgeudb/ravendb/data
2026-04-04 10:10:01.0000|Info|RavenDB is ready to accept requests
# 检查进程
$ ps -ef | grep Raven.Server
ravendb 12345 1 0 10:10 ? 00:00:05 ./Raven.Server –config-path settings.json
步骤4:配置systemd服务
# vi /etc/systemd/system/ravendb.service
[Unit]
Description=RavenDB Document Database
After=network.target
[Service]
Type=simple
User=ravendb
Group=ravendb
WorkingDirectory=/fgeudb/ravendb/RavenDB
ExecStart=/fgeudb/ravendb/RavenDB/Raven.Server –config-path settings.json
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
# 重新加载systemd
# systemctl daemon-reload
# 启动RavenDB服务
# systemctl start ravendb
# 设置开机自启
# systemctl enable ravendb
# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/ravendb.service to /etc/systemd/system/ravendb.service.
# 检查服务状态
# systemctl status ravendb
● ravendb.service – RavenDB Document Database
Loaded: loaded (/etc/systemd/system/ravendb.service; enabled)
Active: active (running) since Fri 2026-04-04 10:15:00 CST; 10s ago
Main PID: 12345 (Raven.Server)
CGroup: /system.slice/ravendb.service
└─12345 /fgeudb/ravendb/RavenDB/Raven.Server –config-path settings.json
6. Docker容器安装实战
使用Docker容器安装RavenDB是最快捷的方式,适合快速测试和开发环境。更多学习教程公众号风哥教程itpux_com
步骤1:拉取RavenDB镜像
# docker pull ravendb/ravendb:7.2-ubuntu
# 输出示例如下:
7.2-ubuntu: Pulling from ravendb/ravendb
f1f26f570256: Pull complete
8f8e43ef9c3a: Pull complete
e9d8dca5b8a5: Pull complete
a1b8d4c4a5e6: Pull complete
Digest: sha256:abc123def456…
Status: Downloaded newer image for ravendb/ravendb:7.2-ubuntu
docker.io/ravendb/ravendb:7.2-ubuntu
# 查看镜像
# docker images | grep ravendb
ravendb/ravendb 7.2-ubuntu abc123def456 2 weeks ago 600MB
步骤2:运行RavenDB容器
# mkdir -p /fgeudb/ravendb/{data,logs}
# 运行RavenDB容器
# docker run -d \
–name ravendb \
-p 8080:8080 \
-p 38888:38888 \
-e RAVEN_Security_UnsecuredAccessAllowed=PrivateNetwork \
-e RAVEN_Setup_Mode=None \
-e RAVEN_License_Eula_Accepted=true \
-v /fgeudb/ravendb/data:/opt/RavenDB/Server/RavenData \
ravendb/ravendb:7.2-ubuntu
# 输出示例如下:
abc123def456789…
# 检查容器状态
# docker ps | grep ravendb
abc123def456 ravendb/ravendb:7.2-ubuntu “./Raven.Server” 10 seconds ago Up 9 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:38888->38888/tcp ravendb
# 查看容器日志
# docker logs ravendb
# 输出示例如下:
2026-04-04 10:20:00.0000|Info|Starting RavenDB Server…
2026-04-04 10:20:01.0000|Info|Server started on http://0.0.0.0:8080
2026-04-04 10:20:01.0000|Info|RavenDB is ready to accept requests
7. RavenDB配置优化
以下是生产环境的RavenDB配置优化建议。
配置文件优化
# vi /fgeudb/ravendb/RavenDB/settings.json
# 生产环境配置
{
“ServerUrl”: “http://192.168.1.51:8080”,
“ServerUrl.Tcp”: “tcp://192.168.1.51:38888”,
“DataDir”: “/fgeudb/ravendb/data”,
“Logs.Path”: “/fgeudb/ravendb/logs”,
“Logs.Mode”: “Operations”,
“Indexing.RunInMemory”: false,
“Core.RunInMemory”: false,
“Memory.LowMemoryLimitInMb”: 1024,
“Memory.HighMemoryLimitInMb”: 2048,
“Storage.MaxScratchBufferSizeInMb”: 512,
“Indexing.MapTimeoutInSec”: 900,
“Indexing.MapTimeoutAfterEtagInSec”: 1800,
“Security.UnsecuredAccessAllowed”: “None”,
“Setup.Mode”: “None”,
“License.Eula.Accepted”: true
}
# 保存配置文件
集群配置
{
“ServerUrl”: “http://192.168.1.51:8080”,
“ServerUrl.Tcp”: “tcp://192.168.1.51:38888”,
“DataDir”: “/fgeudb/ravendb/data”,
“Cluster.NodeTag”: “A”,
“Cluster.ElectionTimeoutInMs”: 300,
“Cluster.StaleTimeoutInSec”: 300,
“Replication.ReplicationMinimalHeartbeatInMs”: 15000
}
# 添加集群节点(通过API)
$ curl -X PUT “http://192.168.1.51:8080/admin/cluster/node” \
-H “Content-Type: application/json” \
-d ‘{“Url”: “http://192.168.1.52:8080”, “Tag”: “B”}’
# 输出示例如下:
{“NodeTag”:”B”,”Added”:true}
8. 安装验证与测试
安装完成后,需要进行验证测试确保RavenDB正常运行。
检查服务状态
$ curl http://192.168.1.51:8080/api/build/version
# 输出示例如下:
{
“BuildVersion”: “72.1000”,
“ProductVersion”: “7.2”,
“CommitHash”: “abc123def”,
“FullVersion”: “7.2.1000”
}
# 检查服务器状态
$ curl http://192.168.1.51:8080/admin/stats
# 输出示例如下:
{
“DatabaseCount”: 0,
“IndexCount”: 0,
“LoadErrorCount”: 0,
“TotalDatabaseSize”: 0,
“TotalIndexSize”: 0,
“TotalMemoryUsage”: 104857600
}
创建数据库和文档
$ curl -X PUT “http://192.168.1.51:8080/admin/databases?name=testdb” \
-H “Content-Type: application/json” \
-d ‘{“DatabaseName”: “testdb”, “Settings”: {“DataDir”: “/fgeudb/ravendb/data/testdb”}}’
# 输出示例如下:
{“DatabaseName”:”testdb”,”Created”:true}
# 创建文档
$ curl -X PUT “http://192.168.1.51:8080/databases/testdb/docs?id=users/1” \
-H “Content-Type: application/json” \
-d ‘{“name”: “Zhang San”, “age”: 30, “city”: “Beijing”}’
# 输出示例如下:
{
“Id”: “users/1”,
“ChangeVector”: “A:1-abc123def”,
“LastModified”: “2026-04-04T10:25:00.0000000Z”
}
# 获取文档
$ curl “http://192.168.1.51:8080/databases/testdb/docs?id=users/1”
# 输出示例如下:
{
“name”: “Zhang San”,
“age”: 30,
“city”: “Beijing”,
“@metadata”: {
“@id”: “users/1”,
“@change-vector”: “A:1-abc123def”,
“@last-modified”: “2026-04-04T10:25:00.0000000Z”
}
}
查询文档
$ curl -X POST “http://192.168.1.51:8080/databases/testdb/queries” \
-H “Content-Type: application/json” \
-d ‘{“Query”: “FROM users WHERE age > 25”}’
# 输出示例如下:
{
“TotalResults”: 1,
“DurationInMs”: 5,
“Results”: [
{
“name”: “Zhang San”,
“age”: 30,
“city”: “Beijing”,
“@metadata”: {
“@id”: “users/1”,
“@change-vector”: “A:1-abc123def”
}
}
]
}
# 创建索引
$ curl -X PUT “http://192.168.1.51:8080/databases/testdb/indexes?name=users/byCity” \
-H “Content-Type: application/json” \
-d ‘{
“Maps”: [“from u in docs.users select new { u.city, u.age }”]
}’
# 输出示例如下:
{“Index”:”users/byCity”,”Created”:true}
Studio Web界面
# 浏览器打开:http://192.168.1.51:8080/
# Studio功能:
# – 数据库管理
# – 文档编辑
# – 索引创建
# – 查询执行
# – 集群管理
# – 任务调度
# – 性能监控
# – 备份恢复
至此,RavenDB数据库的下载和安装已完成。后续可以根据实际业务需求创建数据库、设计索引和配置集群。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
