IT外包网管服务,数据库高速缓存的最终一致性四种方案

发布者:上海IT外包来源:http://www.lanmon.net点击数:1291

      蓝盟IT小贴士,来喽!
  什么是高速缓存
  存储速度不同。 缓存是用于在快速存储上临时存储较慢存储的结果的技术。
  如图所示,金字塔的更上面的存储器可以是下面的存储器的高速缓存。 本次讨论主要针对数据库缓存场景,以redis为mysql缓存的情况进行。
  为什么需要缓存
  诸如mysql之类的存储通常支持完整的ACID特性,并且由于诸如可靠性、持久性之类的因素,性能通常较差,较高的并发查询会对mysql施加压力,从而导致数据库系统不稳定。 同时也容易产生延迟。 根据局部原理,80%的要求降低到20%的热点数据,在读写较少的场景下,增加缓存对提高系统吞吐量和稳健性非常有帮助。
  有问题
  保存的数据可能随时间变化,缓存中的数据不匹配。 具体可接受的不一致时间需要具体业务的具体分析,但正常业务最终必须达成一致。


  解决办法
  方案1
  如果mysql在key过期时更新,则不会更新redis。 这种方式实现起来很简单,但矛盾的时间会变长。 读取请求非常频繁,过期时间过长会产生很多污染的资料。
  优势:
  开发成本低,容易实现
  管理成本低,出现问题的概率低。
  小于:
  完全依赖到期日期,过短的时间会经常禁用缓存,过长的时间容易延迟更新
  方案2
  根据方案1进行扩展,在key过期时驱动,并在更新mysql时更新redis。
  优势:
  对于方案1,更新延迟较小。
  小于:
  如果mysql更新成功,redis更新失败,则退出程序1
  在高并发方案中,业务服务器需要与mysql、redis同时连接。 这消耗了两倍的连接资源,容易导致连接数过多的问题。

     

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部