原文 :https://www.cnblogs.com/Java3y/p/15921480.html
我是3y,一年 CRUD 经验用十年的 markdown 程序员:man|type_1_2::computer:常年被誉为优质八股文选手
今天继续更新austin项目,如果还没看过该系列的同学可以点开我的历史文章回顾下,在看的过程中不要忘记了 点赞 哟!建议不要漏了或者跳着看,不然这篇就看不懂了,之前写过的知识点和业务我就不再赘述啦。
今天要实现的是 handler 消费消息后,实现 平台性 去重的功能。
01、什么是去重和幂等这个话题我之前在《对线面试官》系列就已经分享过了,这块面试也会经常问到,可以再跟大家一起复习下
「幂等」和「去重」的本质:「唯一Key」 「存储」唯一Key如何构建以及选择用什么存储,都是业务决定的。「本地缓存」如果业务合适,可以作为「 前置 」筛选出一部分,把其他存储设备作为「 后置 」,用这种模式来提高性能。
今日要聊的 redis ,它拥有着 高性能读写 ,前置筛选和后置判断均可,austin项目的去重功能就是依赖着Redis而实现的。
02、安装Redis先快速过一遍Redis的使用姿势吧(如果对此不感兴趣的可以直接跳到 05 讲解相关的业务和代码设计)
安装Redis的环境跟上次Kafka是一样的,为了方便我就继续用 docker-compose 的方式来进行啦。
环境: CentOS 7.6 64bit
首先,我们新建一个文件夹 redis ,然后在该目录下创建出 data 文件夹、 redis.conf 文件和 docker-compose.yaml 文件