我是 Aerospike 的新手。我的命名空间有多个集合。我试图在 aerospike dB 命名空间中为不同的集合设置不同的 TTL。
我不想使用分配给命名空间的默认 ttl,而是想为每个集合设置它。
我的配置
namespace test {
replication-factor 1
memory-size 1G
default-ttl 0
}
Run Code Online (Sandbox Code Playgroud)
我提到了此链接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
}
Run Code Online (Sandbox Code Playgroud)
但我不确定应该使用哪个字段来设置每组的 ttl。比如说,我在这个“测试”命名空间中有两个名为 - 的集合order,并且name我希望它们的 ttl 分别为 2 小时和 6 小时。任何帮助,将不胜感激。
提前致谢
aeropsike 中的所有记录都属于一个名称空间,集合只是记录上的元数据,就像标签一样。如果客户端在创建或更新时未指定,default-ttl 是记录的剩余寿命。您不能通过在服务器配置中设置来分配default-ttl 。(还有一些其他设置的特定配置参数,例如已实现的disable-eviction、enable-index , default-ttl不是其中之一。)但是您可以通过在客户端应用程序中编写它来实现相同的目的。
对于每个集合,您可以使用不同的写入策略,并在该写入策略中定义用于在该特定集合中创建或更新记录的 ttl。例如在Java客户端中,它被称为WritePolicy.expiration,以秒为单位。在您的具体情况下,您可以将 2 小时 default-ttl 作为服务器配置 - 因此订单将获得默认值,对于name,在客户端中,在名称集中创建或更新记录时,您可以使用 WritePolicy 将服务器默认值覆盖为 6 小时。到期时间 = 3600。
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |