在每个用户级别以redis存储最常访问的项目

时间:2016-07-06 14:41:42

标签: ruby-on-rails-4 redis

我有模型用户和项目。在redis中,每个用户存储5个最常访问项目列表的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

拥有一个包含所有用户ID

的集合
sadd users user1 users2 ...

对于每个用户都有一个包含项目的排序集及其计数:

ZINCRBY ACTION_COUNT_user1 1 item1

如果您想根据上次访问时间进行检索,请执行以下操作:

zadd ACTION_COUNT_user1 1467816772 item1 (here 1467816772 is timestamp)

现在,如果你想要检索前5:

ZRANGEBYSCORE ACTION_COUNT_user1 0 4

希望这有帮助