2016 - 2024

感恩一路有你

redis mysql完美结合 php redis做mysql的缓存,怎么异步redis同步到mysql数据库?

浏览量:1445 时间:2021-03-15 19:21:39 作者:admin

php redis做mysql的缓存,怎么异步redis同步到mysql数据库?

正常情况下,没有问题,

但有人使用恶意脚本刷奖,即同一个人发起大量请求,一秒钟可能是一两百个请求甚至更多,而且多人刷奖。

问题出在步骤1

例如,假设每个人只能抽一次奖,因为请求太快,同一个人的a和B请求几乎同时出现,a完成抽奖逻辑,在抽奖表中插入记录时,由于MySQL的性能,B无法读取表中的记录,因为a的插入根本没有完成。所以B请求将再次通过抽奖逻辑。让同一个人画两次,然后插入绘图表。

我关心的是,在a插入抽奖表的那一刻,B是否能判断抽奖表中有数据。

所以我觉得问题是MySQL写得不够快,读得不够快,所以我想用redis作为缓存层。

我们100%抽奖,而且只限制奖品的数量,所以我们一定要保证每个人只能抽奖一次,尽量在程序层面解决。

php redis做mysql的缓存,怎么异步redis同步到mysql数据库?

如果你这样问,你可能不了解redis在实际工作中的使用场景。

Redis是一个开放源码(BSD许可)内存数据结构存储系统,可用作数据库、缓存和消息中间件。

主要用于以下场景:

从上面我们可以看出,在实际工作中,redis并不是像MySQL等关系型数据库那样用来保存数据,而是作为中间件或缓存服务器,在MySQL数据之前保护MySQL等关系型数据库。

事实上,许多大型互联网项目都会使用MySQL(或任何关系数据库)NoSQL组合方案。

NoSQL适合存储非结构化数据,如文章和评论:

通过键获取数据的效率非常高,但对连接或其他结构化查询的支持相对较差

此时,一位it编码人员路过并发表了个人意见。

要与redis异步同步MySQL数据,大多数时候都是以队列的形式。例如,PHP使用resque包进行部署,实现自动队列的形式,打开一些额外的线程监控,将一些操作推送到队列中,然后在被监控后执行相关操作(一个控制器和一个方法)同步到MySQL表。

也可以通过spoole扩展,它封装了redis的异步操作。它可以方便地实现redis的异步操作,然后将数据同步到MySQL。

最后,喜欢的小伙伴可以给我表扬或者关注我哦。

redis mysql完美结合 redis和mysql结合使用 redis异步更新mysql

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。