是的,redis对此很有帮助。但是要获得要点,基本上有两种缓存方法。根据您是否使用框架(和/或不使用框架),您可能会在标准情况下或通过使用插件来获得第一选择:
- 缓存数据库查询,即-选定的查询及其结果将保留在redis中,以便在给定时间内或直到清除缓存为止(在更新数据库之后有用)。在这种情况下,您可以使用内置的mysql查询缓存,它比使用其他键值存储要简单,或者您可以使用缓存使用自己的类覆盖默认数据库集成(例如http://pythonhosted.org / johnny-cache /)。
- 自定义缓存,即创建您自己的结构以保留在缓存中,并定期或手动使用从数据库中获取的数据重新填充它们。由于您可以使用内置的Redis功能(例如列表或排序集),因此更新更灵活,并且可能功能更强大,这使更新开销要小得多。它需要更多的编码,但是由于它更具定制性,因此通常可以提供更好的结果。一个很好的例子是让顶级文章以id的redis列表形式保留,然后从redis中访问具有给定id的序列化文章。您可以使该文章不规范-即 序列化的对象可以包含用户ID和用户名,以便可以将其他查询的开销降至最低。
由您来决定采用哪种方法,我个人几乎总是选择第二种方法。但是,当然,这一切都取决于您有多少时间以及应用程序应该执行的操作-
您最好从mysql查询缓存开始,如果结果不够好,请转到redis和自定义缓存。



