Aerospike 是一款专为高性能应用设计的分布式 NoSQL 数据库。Aerospike 支持键值和文档数据模型,并提供多种数据类型,包括列表、映射、HyperLogLog、GeoJSON 和二进制大对象(Blob)。Aerospike 的专利混合内存架构可在大规模部署时提供可预测的高性能,并实现每个节点的高数据密度。
!aerospike_square_logo
Aerospike 社区版支持与 Aerospike 企业版相同的开发者 API(持久化删除除外),二者在操作便捷性和企业功能方面存在差异。有关更多信息,请参见产品矩阵。
任何人都可以注册获取评估功能密钥文件,以使用全功能的单节点 Aerospike 企业版。
使用 Aerospike 社区版即表示您同意社区许可证(COMMUNITY_LICENSE)。
shdocker run -d --name aerospike -p 3000-3002:3000-3002 container.aerospike.com/aerospike/aerospike-server
您可以使用最新的 aerospike-tools 镜像连接到 Aerospike 容器。
shdocker run -ti aerospike/aerospike-tools:latest aql -h $(docker inspect -f '{{.NetworkSettings.IPAddress }}' aerospike) Seed: 172.17.0.2 User: None Config File: /etc/aerospike/astools.conf /root/.aerospike/astools.conf Aerospike Query Client Version 7.0.4 C Client Version 6.0.0 Copyright 2012-2021 Aerospike. All rights reserved. aql> show namespaces +------------+ | namespaces | +------------+ | "test" | +------------+ [172.17.0.2:3000] 1 row in set (0.002 secs) OK
shdocker run -ti aerospike/aerospike-tools:latest asadm -h $(docker inspect -f '{{.NetworkSettings.IPAddress }}' aerospike) Seed: [('172.17.0.2', 3000, None)] Config_file: /root/.aerospike/astools.conf, /etc/aerospike/astools.conf Aerospike Interactive Shell, version 2.10.0 Found 1 nodes Online: 172.17.0.2:3000 Admin> info ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information (2022-11-01 00:48:05 UTC)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Node| Node ID| IP| Build|Migrations|~~~~~~~~~~~~~~~~~~Cluster~~~~~~~~~~~~~~~~~~|Client| Uptime | | | | |Size| Key|Integrity| Principal| Conns| 172.17.0.2:3000|*BB9020011AC4202|172.17.0.2:3000|C-6.1.0.3| 0.000 | 1|19E628721D9A|True |BB9020011AC4202| 8|00:02:09 Number of rows: 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Namespace Usage Information (2022-11-01 00:48:05 UTC)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Namespace| Node| Total|Expirations|Evictions| Stop|~~~~~~~~~~Device~~~~~~~~~~|~~~~~~~~~~Memory~~~~~~~~~|~Primary~ | |Records| | |Writes| Used|Used%|HWM%|Avail%| Used|Used%|HWM%|Stop%|~~Index~~ | | | | | | | | | | | | | | Type test |172.17.0.2:3000|0.000 | 0.000 | 0.000 |False |0.000 B | 0.0| 0| 99|0.000 B | 0.0| 0| 90|memory test | |0.000 | 0.000 | 0.000 | |0.000 B | 0.0| | |0.000 B | 0.0| | | Number of rows: 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Namespace Object Information (2022-11-01 00:48:05 UTC)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Namespace| Node|Rack| Repl| Total|~~~~~~~~~~Objects~~~~~~~~~~|~~~~~~~~~Tombstones~~~~~~~~|~~~~Pending~~~~ | | ID|Factor|Records| Master| Prole|Non-Replica| Master| Prole|Non-Replica|~~~~Migrates~~~ | | | | | | | | | | | Tx| Rx test |172.17.0.2:3000| 0| 1|0.000 |0.000 |0.000 | 0.000 |0.000 |0.000 | 0.000 |0.000 |0.000 test | | | |0.000 |0.000 |0.000 | 0.000 |0.000 |0.000 | 0.000 |0.000 |0.000 Number of rows: 1
Aerospike Docker 镜像附带默认配置文件,可设置单节点、单命名空间的开发环境。您也可以提供自己的配置文件(见下文)。
您可以使用 -e 标志通过容器端环境变量将参数注入默认配置模板。
例如,要将默认命名空间名称设置为 demo:
shdocker run -d --name aerospike -e "NAMESPACE=demo" -p 3000-3002:3000-3002 -v /my/dir:/opt/aerospike/etc/ container.aerospike.com/aerospike/aerospike-server
将配置参数注入配置模板与提供配置文件不兼容,您只能使用其中一种方式。
LOGFILElogging 上下文的 file 参数。默认值:"",不记录到文件。无论此处配置如何,容器都会同时记录到 stdout。
SERVICE_ADDRESSnetworking.service 子上下文的绑定 address。默认值:any
SERVICE_PORTnetworking.service 子上下文的 port。默认值:3000
单个预配置命名空间具有以下变量:
NAMESPACE命名空间名称。默认值:test
DATA_IN_MEMORY存储引擎的 data-in-memory 设置。如果为 false(默认值),命名空间仅将索引存储在内存中,所有读写操作均从文件系统提供服务来自文件系统。如果为 true,命名空间存储为内存中带文件系统持久化,即读写操作从完整的内存副本进行,同步写入会持久化到磁盘。
DEFAULT_TTL命名空间的 default-ttl。默认值:0
MEM_GB命名空间的 memory-size。默认值:1,单位始终为 G(GB)
NSUP_PERIOD命名空间的 nsup-period。默认值:120,单位为秒;当 default-ttl 为 0 时也会禁用。
STORAGE_GB命名空间持久化 file 大小。默认值:4,单位始终为 G(GB)
您可以通过提供自己的 aerospike.conf 覆盖默认配置文件,如 配置 Aerospike 数据库 中所述。
您应首先使用 -v 映射本地目录,Docker 将绑定挂载该目录。然后,将您的 aerospike.conf 文件放入此目录。最后,使用 --config-file 选项告知 Aerospike 配置文件在容器中的位置(默认路径为 /etc/aerospike/aerospike.conf)。请注意,需要功能密钥文件,因此请在配置文件中使用 feature-key-file 指向挂载路径(例如 /opt/aerospike/etc/feature.conf)。
例如:
shdocker run -d -v /opt/aerospike/etc/:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 container.aerospike.com/aerospike/aerospike-server --config-file /opt/aerospike/etc/aerospike.conf
在 Docker 中,容器内的文件不会在容器生命周期后持久化。要持久化数据,您需要使用 -v 选项将主机目录挂载到容器的 /opt/aerospike/data:
例如:
shdocker run -d -v /opt/aerospike/data:/opt/aerospike/data -v /opt/aerospike/etc:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 container.aerospike.com/aerospike/aerospike-server
上述示例使用配置模板,其中定义的单个命名空间是内存中带文件持久化的。只需挂载预定义的 /opt/aerospike/data 目录即可在主机上持久化数据。
或者,您的自定义配置文件使用 file 参数指向挂载的 /opt/aerospike/data 中的文件,如以下配置片段所示:
plaintextnamespace test { # : storage-engine device { file /opt/aerospike/data/test.dat filesize 4G data-in-memory true } }
在此示例中,我们也以类似方式挂载数据目录,并使用自定义配置文件:
shdocker run -d -v /opt/aerospike/data:/opt/aerospike/data -v /opt/aerospike/etc/:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 container.aerospike.com/aerospike/aerospike-server --config-file /opt/aerospike/etc/aerospike.conf
Docker 允许将主机的块设备暴露给运行中的容器。--device 选项可用于在容器内映射主机块设备。
更新自定义 Aerospike 配置文件中命名空间的 storage-engine device 部分:
plaintextnamespace test { # : storage-engine device { device /dev/xvdc write-block-size 128k } }
现在将主机驱动器 /dev/sdc 映射到容器的 /dev/xvdc:
shdocker run -d --device '/dev/sdc:/dev/xvdc' -v /opt/aerospike/etc/:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 container.aerospike.com/aerospike/aerospike-server --config-file /opt/aerospike/etc/aerospike.conf
重启后,Lua 缓存将被清空。要持久化缓存,您需要使用 -v 选项将主机目录挂载到容器的 /opt/aerospike/usr/udf/lua:
shdocker run -d -v /opt/aerospike/lua:/opt/aerospike/usr/udf/lua -v /opt/aerospike/data:/opt/aerospike/data --name aerospike -p 3000-3002:3000-3002 container.aerospike.com/aerospike/aerospike-server --config-file /opt/aerospike/etc/aerospike.conf
为方便起见,此镜像默认未启用安全功能,但这是 Aerospike 企业版的核心功能。知识库文章 如何保护 Aerospike 数据库服务器 详细介绍了该主题。
安全提醒:即使是好人也可能遇到安全问题。
为使 Aerospike 节点能正确向集群和应用广播其地址,需要在配置文件中设置 access-address 配置参数。如果未设置,将使用容器内的 IP 地址,其他节点无法访问。
plaintextnetwork { service { address any # 监听 IP 地址 port 3000 # 监听端口 access-address 192.168.1.100 # 集群节点和应用使用的 IP 地址 } ... }
参见 如何在 Docker 中快速运行 2 节点 Aerospike 集群而无需编辑任何文件?
Aerospike 遥测功能允许我们收集有关您的 Aerospike 社区版服务器使用情况的某些***使用数据(非数据库数据)。更多信息
[!提示] 可通过将容器环境变量
AEROSPIKE_TELEMETRY设置为FALSE来禁用遥测。
这些镜像基于 ubuntu:*。
社区版用户可在 Aerospike 论坛 上报告此镜像的问题或提问,或在 aerospike/aerospike-server.docker 中提交 issue。
如果您使用 Aerospike 数据库社区版,请参阅 aerospike/aerospike-server 仓库中的许可证信息。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429