我正在将事件写入 Redis Stream。但我只想保留过去 48 小时的事件。根据Redis文档,我看到我只能使用受记录计数而不是时间范围影响的MAXLEN来管理我的列表大小。有什么办法可以使用 XADD 函数,但可以限制过去 48 小时内最旧的插入记录?谢谢您的帮助!
这还不清楚。我不喜欢为流设置时间上限的香草方式,即“修剪<seconds>”,因为这意味着如果在处理 XADD 项的过程中出现延迟,那么稍后下一个 XADD 将不得不驱逐潜在的事物秒,导致延迟峰值。此外,它在语义上没有多大意义。你真正的“封顶资源”是内存,所以它不是真的那么重要,你有多少项目要在过去VS店里有多少项目,你可以store,所以物品数量限制更有意义。然而,在某些应用程序中,多个流的插入率在不同的生产者之间差异很大,按时间限制是有意义的,以避免在每单位时间发出很少条目的某些生产者中浪费内存。也许在某个时候我会添加一些“尽力而为”的时间上限,它不会做比给定数量更多的工作,但最终将能够修剪流,如果有足够的 XADD 调用。