0

我有一个没有数据库和控制器的简单 rails 应用程序。它使用高压路由查询,然后使用 javascript 使用参数哈希获取数据。

典型的 URL 如下所示:

http://example.com/?id=37ed660aa222e61ebbbc02db

我想获取用户最近访问过的十个唯一 URL,并将它们传递给视图。请注意,我说的是用户,最好是跨并发会话。

有没有办法使用 ActiveSupport::Notifications 或 Production.log 来检索它?任何示例,包括代码最好的位置,将不胜感激!

4

1 回答 1

0

我认为 Redis 非常适合这种情况。它是 NoSQL 键值存储数据库之一,但它对作为有序列表、队列等的值部分的支持应该可以在访问 FIFO 列表时轻松存储唯一的 url,限制该列表的大小(丢弃列表“旧”端的 url),并检索最近的 N 个 url 以传递给您的视图。您的列表应该足够小,以使其全部保留在内存中并且速度非常快。您也可以使用 memcached 或 mongo 或其他方法来执行此操作;我认为如果解决方案将存储的值保留在内存中,那将是最好的。

如果您还没有使用 redis(或类似的),那么为这个特性设置和维护它可能看起来有点过头了。但是您也可以通过将其用于缓存、后台作业处理 (Resque / Sidekiq) 以及可能在您的应用程序中进行的其他操作,从而为自己付出代价。

于 2014-05-03T02:13:01.247 回答