使用MySQL和Redis优化计数器

时间:2014-01-06 11:59:40

标签: php mysql sql redis counter

我只是想知道使用Redis的最佳方法是什么以及它与您的应用程序的关系。我正在建立一个大型网站,每分钟可以提交数百个“喜欢”的人。

目前,我有一个likes的mysql表和另一个posts的mysql表。 posts表中有一个名为like_count的字段,显然,每次从likes表中插入或删除新的like时,都会存储和更新总喜欢值。

如果我只是将likes表格移到Redis上,如果我在posts表上保留了缓存(likes_count)值,我是否还能完全从中受益,或者这也应该转移到Redis上?

另外,如果我有一系列帖子,那么我如何从Redis中为每个帖子检索这些信息(或者我应该将posts表格移到Redis中吗?)

非常感谢任何帮助

由于

1 个答案:

答案 0 :(得分:0)

通过适当的数据库设计和分片/分区,我认为即使是大规模的MySQL也不会造成可扩展性问题。

Redis提供了一个很好的用例,您可以根据需要对其数据类型进行通道化,例如列表,集合和排序集。您的用例似乎与使用redis不一致。

Redis不适合用作静态内容数据存储,因为它是一个基于内存的数据库,用于提供快速操作,因此应该最佳地使用内存。

如果MySQL不符合您的要求,您可以查看MongoDb。它将为您提供更好的写入吞吐量(但没有连接或事务),并且您的数据模式具有更大的灵活性。它应该是你审查的好候选人。