Rails ruby-china 是否已读用 rails cache 能存多少?

siyang1982 · 2012年02月28日 · 最后由 huacnlee 回复于 2012年02月28日 · 2830 次阅读

学习了一下 ruby-china 的未读标记, user.rb, 是将已读内容及用户 ID 组成 key 放在 cache 里.

def topic_read?(topic)
    # 用 last_reply_id 作为 cache key ,以便不热门的数据自动被 Memcached 挤掉
    last_reply_id = topic.last_reply_id || -1
    Rails.cache.read("user:#{self.id}:topic_read:#{topic.id}") == last_reply_id
end

想请教一下这种方式最多能保存多少, 感觉会造成老帖全都变成未读?

这个放在 Memcached 里面,设计的核心点是 用户用到的其实也就前面几页的,而其他历史的会由于长久没有用到,会随着时间的推移被 Memcached 里面其他的 cache 给挤掉,所以不用担心能存多少。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号