Redis 从应用到系统内核:
![](https://img.haomeiwen.com/i1325285/f3c3720fbd120308.png)
Redis的几个话题
![](https://img.haomeiwen.com/i1325285/cc97dd7d576ad385.png)
Redis删除策略的比较
![](https://img.haomeiwen.com/i1325285/315bb369aa0d5e3c.png)
I/O 模型
![](https://img.haomeiwen.com/i1325285/38dc0eb617255f6d.png)
![](https://img.haomeiwen.com/i1325285/3aa168261417a176.png)
![](https://img.haomeiwen.com/i1325285/fb3c830668fae721.png)
数据库和缓存双写一致性
![](https://img.haomeiwen.com/i1325285/d5c9d471f7c20ee0.png)
![](https://img.haomeiwen.com/i1325285/624f4e5903ad91be.png)
如何处理删除缓存失败的问题?
![](https://img.haomeiwen.com/i1325285/4d60e6628f0090ee.png)
(1)更新数据库数据;
(2)缓存因为种种问题删除失败
(3)将需要删除的key发送至消息队列
(4)自己消费消息,获得需要删除的key
(5)继续重试删除操作,直到成功
注意:对业务代码有侵入
![](https://img.haomeiwen.com/i1325285/7777c00476808b80.png)
(1)更新数据库数据
(2)数据库会将操作信息写入binlog日志当中
(3)订阅程序提取出所需要的数据以及key
(4)另起一段非业务代码,获得该信息
(5)尝试删除缓存操作,发现删除失败
(6)将这些信息发送至消息队列
(7)重新从消息队列中获得该数据,重试操作。
注:对业务代码有侵入
Canal订阅mysql binlog中间件
Redis集群
https://blog.csdn.net/qq_25484147/article/details/78641392
网友评论