Date 按时间窗口循环

Date 按时间窗口循环,date,round-robin,Date,Round Robin,我正在寻找一个系统,它存储时间戳值,并自动删除比特定时间窗口早的值 有点像循环系统,但据我所知,循环是基于特定数量的记录,删除旧记录的数量与新记录的数量相同 在这个系统中,可以任意数量的记录,只需删除比特定时间周期早的记录即可 一种近似方法是每个记录都有一个实时超时的系统,如: console.append "key", { :value => "value1", :timeout => 10.minutes_in_the_future } console.append "key",

我正在寻找一个系统,它存储时间戳值,并自动删除比特定时间窗口早的值

有点像循环系统,但据我所知,循环是基于特定数量的记录,删除旧记录的数量与新记录的数量相同

在这个系统中,可以任意数量的记录,只需删除比特定时间周期早的记录即可

一种近似方法是每个记录都有一个实时超时的系统,如:

console.append "key", { :value => "value1", :timeout => 10.minutes_in_the_future }
console.append "key", { :value => "value2", :timeout => 10.minutes_in_the_future }
console.append "key", { :value => "value3", :timeout => 10.minutes_in_the_future }
不知何故,系统负责删除任何过期记录

该系统可以基于任何高性能存储系统(Redis、Memcache等)

我不是在寻找一个完整详细的解释,只是一些灵感或任何相关文章,或者已经存在的系统,所以我不是在重新发明轮子。

Memcache aprox 在办公室里,我们正在研究这个aprox:

前提条件
  • 时间窗口为10分钟
  • 我们只需要知道记录的数量,而不需要知道值
  • 我们可以接受不太精确的解决方案
实施
  • 每分钟创建一个新密钥,如:
    mykey\uu
  • 给他们10分钟的过期时间
  • 每次我们想添加一条记录时,我们都
    增加实际分钟数的键
  • 为了计算时间窗口值,我们得到过去10分钟内10个键的值,并求和
  • 欺骗
    • 我们不能存储实际值,而只能累积一个值
    • 每1分钟按键过期一次,总值会突然波动

    你在哪工作?数据库?@Celada:我已经为这个问题添加了更多信息。