我想在Rails应用程序中模拟用户之间的关注/关注者,并找到这两个有用的资源:
https://www.railstutorial.org/book/following_users
http://jimneath.org/2011/03/24/using-redis-with-ruby-on-rails.html
使用Redis的好处对我来说很清楚,但我不习惯在postgres之外坚持模型。
它们是否可以一起使用,Redis用于紧固查询,postgres是否可以将数据保留在数据库中,还是无用的重复数据?
例如,使用两者的跟随方法看起来像:
#User.rb
def follow!(user)
# Save in the DB
active_relationships.create(followed_id: user.id)
# Save to Redis
$redis.multi do
$redis.sadd(self.redis_key(:following), user.id)
$redis.sadd(user.redis_key(:followers), self.id)
end
end
使用所有计数方法取消Redis
# number of users being followed
def following_count
$redis.scard(self.redis_key(:following))
end