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

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

<phpforeach($_POST as $key => $val) $$key=trim($val); //接收提交的数据><form method="post" action=""> <input type="text" name="value" value="<php echo $value ; >"/> <input type="submit" name="send" value="send"/></form>action=""表示表单提交到本页面,用php处理一下就行,也可以去后盾人学习一下,看看高清教学视频

使用阿里开源的 canal 作为数据同步工具。

总的来说有两种方案

本文把两种方式都实现下。如果公司有统一的平台接入binlog的话,canal+mq应该是比较好的解耦的方式。

pom依赖

CanalClientMysql2Redis

RocketmqMysql2Redis

官方文档有给出顺序性的说明 >

update之后,写MySql,再写入Redis,替旧数据(可在MySql端定义CRUD触发器,触发后写数据到Redis,也可Redis端解析binlog)

设定超时时间,redis自动删除数据。第二次删除前最好休眠时间,比如500毫秒,又增加写耗时。

一、Redis不会自己同步变更,要告诉。机制(不仅限于):

1 Redis过期去DB取,不立刻更新,顺带重新set redis(称作“Cache Aside”)。不一致时间可设置有效期,如10min。没设置不灵。

2 通过代码更新DB。然后马上del掉redis数据。下次取数据时,恢复上一条方式。Cache Aside变体。好处一致性比较好,一般情况,不一致时间1s以下,绝大部分足够。极少不一致

Cache Aside,“Cache”在DB访问的主流程上帮个忙

1和2的做法常规上被称为“Cache“。而且因为1有更新不及时的问题,2有极端情况下数据会不一致的问题,所以常规Cache代码会把1+2组合起来,要求Redis里的数据必须有过期时间,并且不能太长,这样即便是不一致也能混过去。同时如果是主动对数据进行更新,Cache的数据更新也会比较及时。

并且2并不一定总是行得通。比如OLTP的服务在前面是Cache+DB的模式,而数据是由后台管理系统来更新的,总是不会触碰OLTP服务,更不会动Cache。这时将Redis看作是存储也算是一种方案

以上就是关于php redis做mysql的缓存,怎么异步redis同步到mysql数据库全部的内容,包括:php redis做mysql的缓存,怎么异步redis同步到mysql数据库、mysql同步数据到redis-增量同步、redis同步到数据库多长时间间隔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9757985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存