首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用redis作为mysql数据库的缓存

问使用redis作为mysql数据库的缓存
EN

Stack Overflow用户
提问于 2013-04-29 06:59:20
回答 1查看 36.8K关注 0票数 29

我需要创建一个解决方案使用php,与mysql数据库与大量数据。我的程序将有许多申请,我认为如果我使用缓存和OO数据库,我会有一个很好的结果,但我没有经验。

例如,我认为如果我将保存在mysql中的信息缓存到redis数据库中,性能将会提高,但我不知道这是不是一个好主意,所以我希望有人帮助我选择。

对不起,如果我的英语不是很好,我来自巴西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-29 20:10:21

是的,redis对此很有帮助。但为了抓住要点,基本上有两种缓存方法。根据您是否使用框架(以及使用哪个框架),您可能有标准或使用插件时可用的第一个选项:

  1. 缓存数据库查询,即选定的查询及其结果将保存在redis中,以便在给定时间内或在清除缓存之前更快地访问(在更新数据库后很有用)。在这种情况下,您可以使用内置的mysql查询缓存,它将比使用额外的键值存储更简单,或者您可以使用缓存使用您自己的类覆盖默认的数据库集成(例如http://pythonhosted.org/johnny-cache/).
  2. Custom缓存,即创建您自己的结构保存在缓存中,并定期或手动使用从数据库获取的数据重新填充它们。它更灵活,而且可能更强大,因为您可以使用内置的redis特性,如列表或排序集,这使得更新开销更小。它需要更多的编码,但它通常会提供更好的结果,因为它更具定制化。一个很好的例子是以redis id列表的形式保存顶级文章,然后从redis访问具有给定id的序列化文章。你可以让这篇文章保持非规范化--即。序列化对象可以包含用户id和用户名,以便您可以将附加查询的开销保持在最低。

你可以决定采取哪种方法,我个人几乎总是选择第二种方法。但是,当然,一切都取决于你有多少时间,以及应用程序应该做什么-你最好从mysql查询缓存开始,如果结果不够好,就转移到redis和自定义缓存。

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16268950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档