发布者:上海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同时连接。 这消耗了两倍的连接资源,容易导致连接数过多的问题。
分享到: