我在“评论与评论”的设计中喝醉了像'!
我已经完成了mysql在stackoverflow中的帮助,但是当我尝试为它设计redis时,我又感觉不好了-_- |||
情况是:
当客户端使用用户信息从我的服务请求评论数据时,服务应该告诉客户端用户是否已经喜欢评论,好吧,我有3个表:用户,评论,喜欢(包括user_id和comment_id)
我想从表格中选择评论'评论'并使用' left join'查询表格中的类似信息' Like'(with user_id和comment_id)。它是mysql的解决方案。
我发现如果mysql DB中有很多评论和喜欢,查询会很慢,所以,我必须使用Redis来优化它。但是我在尝试工作时非常困惑:
** 1. **如果数据与用户无关,则很容易缓存数据,我的意思是每个用户都会获得相同的数据,如文章,帖子。
** 2. **如果数据与用户有关系,很难缓存数据,我的意思是每个用户都会得到不同的数据,比如“或不喜欢评论”&#39; < / p>
我正在考虑将每个Like信息缓存到redis,并在查询后查询它,并将其设置为comment.like.But问题是如果我无法在redis中查询类似的信息,那么可能是redis崩溃造成的,我是否应该尝试再次从mysql加载?如果是这样,redis没有办法,mysql将会进行大量查询
答案 0 :(得分:0)
Like / no like与yes / no,true / false相同,它们只是二进制信息。二进制信息可以轻松记录为1/0。因此,您应该考虑使用位图来记录此类信息。
这是一个典型的Redis位图用法,因此我不会在博客中复制和粘贴这些信息,而是向您介绍Redis官方文档中提到的一个:http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps/
这是一个非常详细的技术博客,附带代码示例。我相信你会发现它很有用。