使用Redis的作为MySQL数据库的高速缓存(Using redis as a cache for

2019-09-01 08:10发布

我需要使用PHP创建一个解决方案,MySQL数据库与大量数据。 我的计划将有许多申请,我想,如果我用缓存和OO数据库的工作,我有一个很好的结果,但我没有经验。

我认为,例如,如果我缓存已在Redis的数据库保存在MySQL的信息,性能会有所改善,但我不知道这是否是一个好主意,所以我想有人帮我选。

很抱歉,如果我的英语不太好,我来自巴西。

Answer 1:

是的,Redis的是好了点。 但要获得要点,基本上有两种方法来缓存。 根据您是否使用框架(和)或没有,你可能在标准或使用插件的提供第一个选项:

  1. 缓存数据库查询,那就是 - 选择查询,其结果将被保存在Redis的针对给定的时间更快的访问,或直至清除缓存(更新后DATABSE有用)。 在这种情况下,你可以使用内置的MySQL查询缓存,它会比使用额外的key-value存储更简单,或者你可以重写你自己的类,利用高速缓存的(例如默认数据库集成http://pythonhosted.org /约翰尼缓存/ )。
  2. 自定义缓存,就是创建自己的结构,以保持在高速缓存中,并定期或手动从数据库中读取数据补充它们。 它是更灵活的和潜在的更强大,因为你可以使用内置的Redis的功能,如列表或排序套,使更新的开销要小得多。 它需要多一点的编码,但它通常提供了更好的结果,因为它是更加个性化。 很好的例子是保持顶部物品ID的Redis的列表形式,然后从Redis的访问连载文章(S)与给定id为好。 你可以把这篇文章未标准化 - 即。 序列化对象可以包括用户ID以及用户名,这样就可以保持更多的查询的开销降到最低。

这是你的决定采取,我个人总是有办法二号去哪个方法。 但是,当然,一切都取决于你有多少时间,什么应用程序应该做的 - 你不妨使用MySQL查询缓存开始,如果结果都不够好招的Redis和自定义缓存。



文章来源: Using redis as a cache for a mysql database