
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Redis是一个由C语言开发的数据库。为了避免使用MySQL要求过度影响性能,它将被使用。Mysql和redis数据在高并发场景中的一致性不容忽视。
MySQL和Redis缓存的一致性。
场景:线程A,修改数据,线程B使用数据。
1.双删策略:线程A写数据时,先删除redis数据,然后修改mysql,再删除redis数据。
问题:线程A修改mysql时,线程B先读取数据,然后执行线程A。此时redis中没有数据,然后线程B处理业务,然后设置redis缓存。此时,redis中的数据仍然是线程A修改前的数据。
2.延迟双删策略:线程A写数据时,先删除redis数据,然后修改mysql,再延迟一个业务时间后删除redis数据。
问题:该策略不能包括延迟时间;并影响系统的处理能力。
3.读写串行化:只要读写并发,就必然存在数据一致性问题。要彻底解决这个问题,就要串行。这种方法会影响效率,如果采用,可以做压力测试。
分布式锁的使用:影响效率。
使用队列:将操作同一资源的请求输入同一队列。
四、cancel:同步mysql的bin_log,更新redis。这种方法也会有延迟。
五、redis设置故障时间。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请添加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。