学习了一下 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
想请教一下这种方式最多能保存多少,感觉会造成老帖全都变成未读?