结合Redis与MySQL实现又快又好的数据方案

要速度快,我们一般会选择Redis,不过同等价格的情况下,内存容量终究比不过硬盘大小,对于大量数据,MySQL是更好的选择。不过, 我们可以结合Redis和MySQL实现,将热点数据存储在Redis中,将不热的数据存储在MySQL中。

有些场景,例如发一个全国性的推送,或者一个非常热门的帖子。这类场景就很适合,刚发布出去的那几天,消息非常热门,如果直接 把数据存储在MySQL中,MySQL很容易就炸(QPS高的情况下),因此不如把数据存储在Redis中,当消息不那么热门的时候,就可以把Redis 中的数据刷到MySQL中,这个时候访问消息的QPS就没有那么高了。

那么这种模式的问题在哪里呢?问题就在于代码的逻辑会复杂很多,要处理时间边界,代码逻辑中将两个数据源的消息进行拼接,相当于 将Redis或者MySQL中的一部分逻辑搬到业务代码中来完成。

因此这个方案,如果数据量没有达到对应的级别的话,还是谨慎使用,毕竟,这是大杀器。


微信公众号
关注公众号,获得及时更新

更多文章
  • Web开发系列(四):Flask, Tornado和WSGI
  • Web开发系列(三):什么是HTML,CSS,JS?
  • Web开发系列(二):HTTP协议
  • Web开发系列(一):从输入网址到最后,这个过程经历了什么?
  • SNI: 让Nginx在一个IP上使用多个证书
  • Haskell: infixl, infixr, infix
  • Haskell简明教程(五):处理JSON
  • Haskell简明教程(四):Monoid, Applicative, Monad
  • HTTPS 的详细流程
  • OAuth2 为什么需要 Authorization Code?
  • 任务队列怎么写?python rq源码阅读与分析
  • XMonad 配置教程
  • Haskell简明教程(三):Haskell语法
  • Haskell简明教程(二):从命令式语言进行抽象
  • Haskell简明教程(一):从递归说起