Aerospike作为重复数据消除缓存
我们希望使用Aerospike作为事件ID重复数据消除的缓存,使用预定义的TTL 我们的用例非常简单:对于接收到的每个事件,我们都希望检查缓存中是否存在此事件id。如果是,我们希望重置TTL(触摸记录)并在应用程序中将此事件标记为欺诈,否则我们希望执行put操作以插入此id 我们计划做以下工作: (i) 配置单个记录名称空间,因为我们只希望存储id。我们将使用事件id作为键,并将NullValue存储为相应的值。(因为我们真的不需要除了键值以外的任何东西) (ii)对于重复数据消除检查,我们将首先检查client.exists(),然后对写入策略中的RecordExistsAction.REPLACE执行put操作(因为这是针对性能而优化的)。这两个操作都将在原子性的operate()块中调用 但我们对以下方面有一些疑问: (i) 关于操作块,我们希望执行的这个检查和设置事务似乎是一个非常常见的用例。是否有一个API可以以更干净的方式实现这一点?(我们什么也找不到) (ii)是否绝对有必要设置一个垃圾箱?我们只希望存储密钥,而不希望存储相应的值。我意识到键值从未被存储,Aerospike只存储摘要,但既然exists()是我们唯一关心的事情,那么有没有办法消除额外的bin存储开销 谢谢大家! (ii)是否绝对有必要设置一个垃圾箱?我们只希望存储密钥,而不希望存储相应的值。我意识到键值从未被存储,Aerospike只存储摘要,但既然exists()是我们唯一关心的事情,那么有没有办法消除额外的bin存储开销 你在找我。您必须有一个值,没有值会删除记录。对于索引中的数据,值需要小于等于8字节(通常使用整数) 由于在索引中使用数据需要单个容器,所以消除了许多容器开销Aerospike作为重复数据消除缓存,aerospike,Aerospike,我们希望使用Aerospike作为事件ID重复数据消除的缓存,使用预定义的TTL 我们的用例非常简单:对于接收到的每个事件,我们都希望检查缓存中是否存在此事件id。如果是,我们希望重置TTL(触摸记录)并在应用程序中将此事件标记为欺诈,否则我们希望执行put操作以插入此id 我们计划做以下工作: (i) 配置单个记录名称空间,因为我们只希望存储id。我们将使用事件id作为键,并将NullValue存储为相应的值。(因为我们真的不需要除了键值以外的任何东西) (ii)对于重复数据消除检查,我们将首