所有数据都应该存储在Redis中吗?

3

我正在构建一个新闻网站。目前,我使用MySQL作为主要数据存储,并使用Redis来维护用户首页动态文章列表。当用户在首页点击一篇文章时,我会连接到MySQL获取文章的主要内容、评论和相关信息。

如果我将所有文章数据存储在Redis中,这是最佳实践吗?我的意思是,我将文章的主要内容存储在Redis中,而不是连接到MySQL获取整篇文章的内容,这样可以提高性能吗?


你是想将Redis作为你唯一的数据存储还是作为你的主要数据存储,让MySQL成为次要的呢? - Agis
MySQL是我的主要数据存储。我使用Redis作为独立的数据存储来提高性能。 - ipkiss
2个回答

6
这是基于个人观点的,以下是我的看法。Redis非常适合用作缓存。但您需要决定需要缓存什么,并且是否真正需要进行缓存。这取决于您的应用规模。如果文章经常更改,您没有庞大的用户/访问者基础,那么我认为根本不需要使用Redis。请记住,您无法在Redis中搜索内容。无法像这样在Redis中执行查询语句:SELECT articles WHERE author='foo'
另一方面,如果由于用户太多而导致数据库负载急剧增加,您可以预先呈现所有文章的HTML并将其放入Redis中。这将减轻数据库和Web服务器的负载。但前提是你已经知道要显示哪些文章。

1
这取决于redis在您的情况下扮演的角色。如果它作为缓存,您可以尝试在redis中存储更多数据(在可能的情况下)。只要开发开销较小且该过程不会引入新的错误源。如果您希望redis成为数据的主要来源(在您的情况下并非如此),您还可以决定将所有内容从MySQL中移出。对于低频率变更的数据而言,这可能值得一试。但请记得备份数据库并在更改后同步到硬盘驱动器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接