我正在编写一个单元,它将检查在最后10秒内添加的项目是否结束了计数10的限制。如果在10秒内在列表中添加了10个以上的项目,我的应用程序将抛出异常。 Redis没有为集合或列表中的每个元素添加生存时间的机制。为了解决这个问题,我在Redis的每个调用中以当前格式存储当前的Millis。每当用户在列表中添加项目时,我检查项目时间戳和当前时间戳差异是否大于10秒我是否通过。如果不是,我阻止了操作。
虽然这有效但我正在寻找一种更好的方法来做到这一点。如果此过程中存在任何问题,则需要反馈
答案 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'
有了这个,你可以添加一个项目到现金,最旧的条目将被删除。 您还可以检查缓存中是否存在某个项目,以确定它是否最近存储在缓存中。
希望有所帮助。