System.currentMillis to keeptrackof java中过期的项目

时间:2016-03-29 02:00:05

标签: java java-ee redis

我正在编写一个单元,它将检查在最后10秒内添加的项目是否结束了计数10的限制。如果在10秒内在列表中添加了10个以上的项目,我的应用程序将抛出异​​常。 Redis没有为集合或列表中的每个元素添加生存时间的机制。为了解决这个问题,我在Redis的每个调用中以当前格式存储当前的Millis。每当用户在列表中添加项目时,我检查项目时间戳和当前时间戳差异是否大于10秒我是否通过。如果不是,我阻止了操作。

虽然这有效但我正在寻找一种更好的方法来做到这一点。如果此过程中存在任何问题,则需要反馈

1 个答案:

答案 0 :(得分:0)

您只需要一个LRU(最近最少使用)缓存。 如果你搜索,网上有很多这样的实现。

这是一个如何完成实现的简单示例:

app/views/layouts/_nav.html.erb:24:in `_app_views_layouts__nav_html_erb__2914379975493970040_70146050606840'
app/views/layouts/application.html.erb:13:in `_app_views_layouts_application_html_erb___3858195360324705958_70145981089600'

有了这个,你可以添加一个项目到现金,最旧的条目将被删除。 您还可以检查缓存中是否存在某个项目,以确定它是否最近存储在缓存中。

希望有所帮助。