我是新来的..。我的命名空间有多个集合。我试图在我的aerospike dB命名空间中为不同的集合设置不同的TTL。
我不想使用分配给名称空间的默认-ttl,而是要为每个集合设置它。
我的配置
namespace test {
replication-factor 1
memory-size 1G
default-ttl 0
}我提到了这个链接https://docs.aerospike.com/server/operations/configure,它声明可以设置特定的记录策略。
namespace <name> { # Define namespace record policies and storage engine
storage {} # Configure persistence or lack of persistence
set {} # (Optional) Set specific record policies
}但我不确定应该使用哪个字段来设置每一组的ttl。比方说,在这个名为- order和name的'test‘命名空间中有两个集合,我希望它们的ttls分别为2小时和6小时。任何帮助都将不胜感激。
提前感谢
发布于 2022-08-01 15:15:56
aeropsike中的所有记录都属于名称空间,set只是记录上的元数据,就像标记一样。如果客户端没有在创建或更新时指定,则默认-ttl是记录的剩余生命周期。不能在服务器配置中通过设置分配默认-ttl。(还有其他一些特定的配置参数,例如禁用驱逐、已实现的启用索引,默认-ttl不是其中之一。)但是,您可以通过在客户端应用程序中编写它来实现同样的目的。
对于每个集合,您可以使用不同的写入策略,并且在该写入策略中定义用于在该特定集中创建或更新记录的ttl。例如,在Java中,它被称为WritePolicy.expiration,以秒为单位。在您的具体情况下,您可以使用2小时默认的-ttl作为服务器配置-因此orders将作为缺省值,在客户端中,在创建或更新名称集中的记录时,使用WritePolicy.expiration = 3600覆盖服务器默认值为6小时。
https://stackoverflow.com/questions/73190707
复制相似问题