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

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

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

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

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


更多文章
  • Golang ASM简明教程
  • Golang中的并发控制
  • 善用闭包(closure)让Go代码更优雅
  • Golang的可选参数实践
  • FreeBSD ipfw使用教程
  • Golang expvar库源码阅读
  • Golang SQL生成库 Squirrel 教程及源码阅读
  • Golang validator使用教程
  • 价值编程与职业发展
  • 使用Redis的Stream模块实现群聊功能
  • 解决k8s cron无法读取环境变量的问题
  • 应用内购的坑
  • 两种常见的访问控制模型
  • gunicorn max-requests 选项的作用
  • Redis使用中的几点注意事项