redis
文章平均质量分 56
卿者飞翔
九年编码老鸟
展开
-
redis实现延时队列的两种方式
背景项目中的流程监控,有几种节点,需要监控每一个节点是否超时。按传统的做法,肯定是通过定时任务,去扫描然后判断,但是定时任务有缺点:1,数据量大会慢;2,时间不好控制,太短,怕一次处理不完,太长状态就会有延迟。所以就想到用延迟队列的方式去实现。一,redis的过期key监控1,开启过期key监听在redis的配置里把这个注释去掉notify-keyspace-events Ex然后重启redis2,使用redis过期监听实现延迟队列继承KeyExpirationEventMessageLi原创 2021-01-29 16:09:09 · 10752 阅读 · 9 评论 -
mybatis分布式主键冲突--解决方式:修改默认雪花算法
背景上一篇 mybatis的分布式主键冲突 中,我提到,解决方式有两种,第二种就是修改默认的雪花算法实现方式,让机器标志不重复。1,分析idworker类如下图所示,idworker类有一个initSequence方法,而雪花算法的机器标志就是由里面的两个参数workerId, datacenterId来组成的。所以,我们只需要自定义workerId, datacenterId这两个值,保证他们不完全一样,那么机器标志就不会重复了。2,自定义workerId, datacenterId我们是在m原创 2021-01-15 09:47:19 · 2673 阅读 · 1 评论 -
mysql和redis实现自定义序号生成
通过redis和mysql实现自定义序号服务背景项目需要序号服务,该序号由标志字母+日期+自增数字。所以,考虑使用redis和mysql的方式去实现它。获取序号通过redis,可以保证线程安全。然后号段通过mysql去操作,对mysql的操作通过redisson分布式锁保证分布式一致性。1,所需环境redis和redisson分布式锁mysqlmybatisPlus2,数据库表CREATE TABLE `t_redis_sequence` ( `biz_tag` varchar(64原创 2021-01-12 13:38:47 · 1187 阅读 · 2 评论