Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aerospike java客户端存储数据,即使“set”名称为空_Java_Aerospike_Aerospike Ce - Fatal编程技术网

Aerospike java客户端存储数据,即使“set”名称为空

Aerospike java客户端存储数据,即使“set”名称为空,java,aerospike,aerospike-ce,Java,Aerospike,Aerospike Ce,我正在调试我的代码,我发现这个集名称为null的Aerospike java客户端代码可以工作并在Aerospike中插入数据: AerospikeClient=new AerospikeClientlocalhost,3000; Key Key=newkeytest,null,inputPayload.getUuid//请注意,集合名称为null Bin bin1=新的Bin段,inputPayload.getSegments; client.putnull,key,bin1; 我能够插入和检

我正在调试我的代码,我发现这个集名称为null的Aerospike java客户端代码可以工作并在Aerospike中插入数据:

AerospikeClient=new AerospikeClientlocalhost,3000; Key Key=newkeytest,null,inputPayload.getUuid//请注意,集合名称为null Bin bin1=新的Bin段,inputPayload.getSegments; client.putnull,key,bin1; 我能够插入和检索数据,但show sets没有显示任何集合名称。 经过一些调试后,我使用select*from找到了数据

我的问题是

如果数据未存储在集合中,则存储在何处? 我们知道aerospike与关系数据库的比较如下:namespace==数据库和set==表。但是在关系数据库中,我们不允许直接在数据库中插入数据,我们需要先创建一个表。这是有道理的。那么,为什么aerospike允许我们使用空集来实现这一点呢?
好问题:如果未指定集合,则记录将存储在您计算出的“null”集合中。但是您可以通过将config参数设置为true来禁用此行为。

好问题:如果未指定该集合,则记录将存储在您计算出的“null”集合中。但是您可以通过将config参数设置为true来禁用此行为

我们知道aerospike与关系数据库相比如下:

集合和表格是相似的概念,但它们不同。Aerospike的早期版本没有集合的概念,当时和现在开发的许多应用程序更喜欢通过不发送集合名称来节省网络和存储开销

对于您的应用程序,可以通过添加到命名空间配置来禁止“null”集

我们知道aerospike与关系数据库相比如下:

集合和表格是相似的概念,但它们不同。Aerospike的早期版本没有集合的概念,当时和现在开发的许多应用程序更喜欢通过不发送集合名称来节省网络和存储开销


对于您的应用程序,您可以通过添加命名空间配置来禁止“null”集。

在Aerospike中,您可以定义最多1024个集,0到1023。。。默认集0为空集。集合名称只是记录上的元数据-数据建模的便利性,并有助于某些命令-尤其是版本5.6中发布的最新功能,集合索引-可大大加快扫描少量记录(例如1000条属于setA)的速度,在一个巨大的命名空间(例如10亿条记录)中。始终将集合元数据附加到记录中还有其他操作优势,即为每个记录指定集合名称,例如在Enterprise Edition中使用持久截断。如果在null集合和命名集合中混合有记录,则不能仅截断null集合中的记录。如果您有一个专用的名称空间,用于不希望分配集合名称的类似记录,那么它将为您节省存储空间—集合名称与设备存储上的每个记录一起存储。因此,在某些数据模型中存在不使用集合名称的动机。一个集合名称最多可包含63个字符,每个字符占用设备上一字节的存储空间,每个记录。

在Aerospike中,您最多可定义1024个集合,从0到1023。。。默认集0为空集。集合名称只是记录上的元数据-数据建模的便利性,并有助于某些命令-尤其是版本5.6中发布的最新功能,集合索引-可大大加快扫描少量记录(例如1000条属于setA)的速度,在一个巨大的命名空间(例如10亿条记录)中。始终将集合元数据附加到记录中还有其他操作优势,即为每个记录指定集合名称,例如在Enterprise Edition中使用持久截断。如果在null集合和命名集合中混合有记录,则不能仅截断null集合中的记录。如果您有一个专用的名称空间,用于不希望分配集合名称的类似记录,那么它将为您节省存储空间—集合名称与设备存储上的每个记录一起存储。因此,在某些数据模型中存在不使用集合名称的动机。集合名称最多可以是63个字符,每个字符占用设备上的一个字节存储空间,每个记录。

但什么是空集合?它的意义是什么?它只是没有指定显式集合名的任何记录的默认值。这些结果的集合名为“null”。但什么是null集合?它的意义是什么?它只是没有指定显式集合名的任何记录的默认值。这些结果的集合名为“null”。