Software Products
免除繁琐安装
所有软件均无任何外部依赖,直接下载运行即可
软件产品
生产级高性能服务器端软件
原子服务器

原子服务器是一种基础存储服务器,常用于存储各类实体对象,比如系统用户、论坛帖子等,通过动态横向扩展部署,可实现超海量的数据存储。原子对象下可存储子数据,实现数据关联性隔离访问,比如,用户登录凭证可以用该用户的一个 JSON 属性存储。

一、安装部署 二、原子对象三、列表四、小数据五、属性六、队列七、其它一、安装部署

请选择适合您操作系统的版本进行下载:

下载配置文件以及相应版本软件后直接运行即可,如果操作系统需要 x 属性执行文件,则先执行 chmod +x 命令,比如:

> wget https://ddzeb.com/-dl/ddzeb-atom-server.yaml -O server.yaml
> wget https://ddzeb.com/-dl/ddzeb-atom-server.linux-amd64 -O server && chmod +x server
> nohup ./server &
二、原子对象

我们把基本存储单元叫做原子,相应的数据对象叫做原子对象。本服务器是以原子对象为核心对象,其它数据均是依附于原子对象的存储单元。

• AtomBounds 取得 ID 上下限
名称类型是否必选示例值说明
atomstringpost存储结点名称
名称类型示例值说明
Mininteger1下限
Maxinteger965332上限
• AtomCount 取得数量
名称类型是否必选示例值说明
atomstringpost存储结点名称
名称类型示例值说明
Countinteger965332原子总数
• AtomDel 删除对象
名称类型是否必选示例值说明
atomstringpost存储结点名称
[Atom]IDinteger183对象 ID
reseedanyyes重置对象 ID 种子为最大值
名称类型示例值说明
• AtomGet 获取对象
名称类型是否必选示例值说明
atomstringpost存储结点名称
[Atom]IDinteger183对象 ID
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
对象数据
• AtomHas 存在性判断
名称类型是否必选示例值说明
atomstringpost存储结点名称
[Atom]IDinteger183对象 ID
名称类型示例值说明
Hasinteger10 表示不存在,1 表示存在
• AtomLoop 反向枚举
名称类型是否必选示例值说明
atomstringpost存储结点名称
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
List[]Map[{"PostID":1, "Title":"Hello World"}]原子对象数组
• AtomNew 新增对象

绝大部分情况下,我们可以使用 AtomSet 新增(或修改)对象,AtomNew 用于明确知道是新增的情况。

名称类型是否必选示例值说明
atomstringpost存储结点名称
对象属性
名称类型示例值说明
[Atom]IDuint32183原子对象 ID
• AtomPageLoop 反向排序分页查询
名称类型是否必选示例值说明
atomstringpost存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
ListJSON 数组[{"PostID":1, "Title":"Hello World"}]页面对象列表
• AtomPageRoll 正向排序分页查询
名称类型是否必选示例值说明
atomstringpost存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
ListJSON 数组[{"PostID":1, "Title":"Hello World"}]页面对象列表
• AtomRange 范围查询
名称类型是否必选示例值说明
atomstringpost存储结点名称
startinteger20开始 ID
endinteger0结束 ID
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
ListJSON 数组[{"PostID":1, "Title":"Hello World"}]对象列表
• AtomRoll 正向枚举
名称类型是否必选示例值说明
atomstringpost存储结点名称
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
List[]Map[{"PostID":1, "Title":"Hello World"}]原子对象数组
• AtomSearch 对象搜索
名称类型是否必选示例值说明
atomstringpost存储结点名称
keywordstringHello关键字
fields[]string["Name"]搜索字段
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
ListJSON 数组[{"PostID":1, "Title":"Hello World"}]对象列表
• AtomSet 设置对象属性

如果明确是新增对象,可以使用 AtomNew 接口。

名称类型是否必选示例值说明
atomstringpost存储结点名称
[Atom]IDinteger183对象 ID
reseedstringno检查并更新 AutoKey Seed,缺省为 yes
对象属性
名称类型示例值说明
[Atom]IDuint32183原子对象 ID
Createdinteger0是否为新创建对象
三、列表

每个原子对象下均可以建立各种列表数据,比如一个用户下可能有多个笔记以及多个收货地址等。

• ListBounds 取得 ID 上下限
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
名称类型示例值说明
Mininteger1下限
Maxinteger965332上限
• ListCount 取得数量
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
名称类型示例值说明
Countinteger183对象数量
• ListDel 删除对象
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
[List]IDinteger3对象 ID
名称类型示例值说明
• ListGet 获取对象
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
[List]IDinteger3对象 ID
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
用户存储的各对象属性
• ListHas 存在性判断
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
[List]IDinteger3对象 ID
名称类型示例值说明
Hasinteger10 表示不存在,1 表示存在
• ListLoop 反向排序获取全部对象
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
ListJSON 数组[{"SectionID":1, "Name":"Hello World"}]全部对象列表
• ListNew 新增对象
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
用户存储的各对象属性
名称类型示例值说明
[List]IDuint32153对象 ID
• ListPageLoop 反向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
ListJSON 数组[{"SectionID":1, "Name":"Hello World"}]页面对象列表
• ListPageRoll 正向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
ListJSON 数组[{"SectionID":1, "Name":"Hello World"}]页面对象列表
• ListRoll 正向排序获取全部对象
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
ListJSON 数组[{"SectionID":1, "Name":"Hello World"}]全部对象列表
• ListSearch 对象搜索
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
keywordstring软件开发关键字
fields[]string["Name"]搜索字段
select[]string["Age", "Weight"]字段选择
名称类型示例值说明
ListJSON 数组[{"SectionID":1, "Name":"我爱软件开发"}]对象列表
• ListSet 设置对象属性
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
liststringsection存储结点名称
[List]IDinteger153对象 ID
reseedstringno检查并更新 AutoKey Seed,缺省为 yes
用户存储的各对象属性
名称类型示例值说明
[List]IDuint32153对象 ID
Createdinteger0是否为新创建对象
四、小数据

每个原子对象下均可存储各种小数据,比如一个用户下可用 8 字节小数据存储其生病日期列表。

• NoteAppend 追加数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
uniqbool0是否检查数据唯一
datastringa3efbbHex 编码的二进制数据内容
名称类型示例值说明
• NoteClear 清空数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
名称类型示例值说明
• NoteCount 取得数量
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
名称类型示例值说明
Countinteger13数量
• NoteEmpty 是否为空
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
名称类型示例值说明
Emptyinteger10 表示非空,1 表示为空
• NoteHas 存在性判断
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
datastringa3efbbHex 编码的二进制数据内容
名称类型示例值说明
Hasinteger10 表示不存在,1 表示存在
• NoteLoop 反向排序列表
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
名称类型示例值说明
List[]string["a3efbb"]页面数据列表
• NotePageLoop 反向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
List[]string["a3efbb"]页面数据列表
• NotePageRoll 正向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
List[]string["a3efbb"]页面数据列表
• NotePrepend 插入数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
uniqbool0是否检查数据唯一
datastringa3efbbHex 编码的二进制数据内容
名称类型示例值说明
• NoteRemove 删除数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
datastringa3efbbHex 编码的二进制数据内容
名称类型示例值说明
• NoteRoll 正向排序列表
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
名称类型示例值说明
List[]string["a3efbb"]页面数据列表
• NoteToggle 翻转数据

如果数据已经存在,则删除;如果数据不存在,则添加。无论是删除还是添加,都返回最终状态。

名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
notestringlist-<hex>0000008e</hex>存储结点名称
datastringa3efbbHex 编码的二进制数据内容
名称类型示例值说明
Hasinteger10 表示不存在,1 表示存在
五、属性

每个原子对象下均可存储各种属性,比如用户的登录凭证(密码,错误次数等)。

• PropBounds 上下限
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
prefixstring131前缀
名称类型示例值说明
Minstring13007811下限
Maxstring89640898上限
• PropCount 数量统计
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
prefixstring131前缀
名称类型示例值说明
Countinteger9382数量
• PropDel 删除属性
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
propstring13100187985属性名
名称类型示例值说明
• PropGet 获取属性
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
propstring13100187985属性名
名称类型示例值说明
对象数据
• PropHas 存在性判断
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
propstring13100187985属性名
名称类型示例值说明
Hasinteger00 表示不存在,1 表示存在
• PropMov 修改属性名
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
oldstring13100187985旧属性名
newstring13100182633新属性名
名称类型示例值说明
• PropPageLoop 反向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
prefixstring131前缀
page-sizeinteger20页面大小
page-indexinteger0页面编号
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
ListJSON 数组[{"Key":"13100187985", "Value":{"Title":"Hello World"}}]对象列表
• PropPageRoll 正向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
prefixstring131前缀
page-sizeinteger20页面大小
page-indexinteger0页面编号
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
ListJSON 数组[{"Key":"13100187985", "Value":{"Title":"Hello World"}}]对象列表
• PropRange 范围查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
prefixstring131前缀
startstring13100187985开始 ID
endstring13100182633结束 ID
名称类型示例值说明
ListJSON 数组[{"Key":"13100187985", "Value":{"Title":"Hello World"}}]对象列表
• PropSet 设置属性
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
propstring13100187985属性名
对象属性
名称类型示例值说明
六、队列

每个原子对象下均可存储各种属性,比如用户的登录凭证(密码,错误次数等)。

• QueueAppend 后向添加
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
用户存储的各对象属性
名称类型示例值说明
• QueueClear 清空所有数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
• QueueCount 取得数量
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
Countinteger13数量
• QueueEmpty 是否为空
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
Emptyinteger10 表示非空,1 表示为空
• QueueHead 取得头结点数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
用户存储的各对象属性
• QueueLoop 反向枚举
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
ListJSON 数组[{"Date":"2020-05-15"}]数据列表
• QueuePageLoop 反向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
List[]string[{"Date":"2020-05-15"}]页面数据列表
• QueuePageRoll 正向排序分页查询
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
page-sizeinteger20页面大小
page-indexinteger0页面编号
名称类型示例值说明
Totalinteger1全部对象数量
Pagesinteger1总页面数
PageSizeinteger20页面大小
PageIndexinteger0页面编号
List[]string[{"Date":"2020-05-15"}]页面数据列表
• QueuePop 弹出尾结点
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
用户存储的各对象属性
• QueuePrepend 前向添加
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
用户存储的各对象属性
名称类型示例值说明
• QueueRoll 正向枚举
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
ListJSON 数组[{"Date":"2020-05-15"}]数据列表
• QueueShift 弹出头结点
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
用户存储的各对象属性
• QueueTail 取得尾结点数据
名称类型是否必选示例值说明
atomstringpost原子对象名称
[Atom]IDinteger183原子对象 ID
queuestringpromotion存储结点名称
名称类型示例值说明
用户存储的各对象属性
七、其它

服务器其它接口,包括分布式锁、数据库备份以及监控等。

• GUID 微软格式 GUID

微软的 GUID(Globals Unique Identifiers),其格式为:xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16)

名称类型是否必选示例值说明
名称类型示例值说明
Valueinteger6F9619FF-8B86-D011-B42D-00C04FC964FF
• Series 字符序列
名称类型是否必选示例值说明
namestringtran序列名
lengthinteger32序列长度
digitsstring0123456789abcdef序列允许的字符
seedstring00000000000000000000000000000001重置序列,设置种子
名称类型示例值说明
Valuestring00000000000000000000000000000002序列值
• Uint64 整数序列
名称类型是否必选示例值说明
namestringtran序列名
名称类型示例值说明
Valueinteger1412312序列值
• UUID 标准格式 UUID

标准 UUID,格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)

名称类型是否必选示例值说明
名称类型示例值说明
Valueintegerfafdb406-f2cd-4171-9ca4-e6eaa5264422
• DLock 分布式锁获取/锁定
名称类型是否必选示例值说明
resourcestringaccount资源标识
operation-timeoutstring5s超时时间/最大锁定时长
max-waitingstring2s最大等待时长
max-queuestring10最大等待队列长度
名称类型示例值说明
TranIDinteger165锁 ID
• DRenew 分布式锁续约
名称类型是否必选示例值说明
resourcestringaccount资源标识
tran-idinteger5s锁 ID
operation-timeoutstring5s超时时间/最大锁定时长
名称类型示例值说明
• DUnlock 分布式锁解锁
名称类型是否必选示例值说明
resourcestringaccount资源标识
tran-idinteger5s锁 ID
名称类型示例值说明
• ZReplicate 数据库备份
名称类型是否必选示例值说明
deststringfile-name.bak目标备份文件
名称类型示例值说明
• ZStat 服务器状态统计
名称类型是否必选示例值说明
名称类型示例值说明
ServerTypestringATOM服务器类型
ServerVersionstring1.0服务器版本
ServerNamestringddzeb atom server服务器名称
APIs[]string["AtomSet", "AtomGet"]服务器 API 列表
StartAt时间2314828874启动时间
DatabaseJSON{}数据库统计资料
NetworkJSON{}网络统计资料
RuntimeJSON{}服务器运行时统计