【发布时间】:2013-07-03 08:36:25
【问题描述】:
我在我的应用程序中使用 redis-store 进行缓存,如果值返回 nil,我不想获取键和值。
Rails.cache.fetch{"user_by_comment_id:#{params['comment_id']}"} do
User.find_by_comment_id(params['comment_id'])
end
如果它返回键“user_by_comment_id:#{params['comment_id']}”的 nil,我不想将键存储在我的缓存中。帮我解决这个问题。
【问题讨论】:
-
如果它返回 nil 则不会在缓存中写入任何内容
-
它为 key 写入 nil。如果它返回 nil,我不想写入缓存 key。
-
如果没有找到记录,使用抛出异常的方法怎么样(这很脏,但我看不到其他方法)
-
另外 - 如果没有通过评论 id 找到用户,则意味着评论不属于任何人。是不是数据一致性有问题?
-
User.find_by_comment_id!(params['comment_id'])
标签: ruby-on-rails ruby-on-rails-3 caching memcached