- 博客(71)
- 收藏
- 关注
原创 RabbitMQ(学习)之MQ高级
每个只能配置一个,因此我们可以在配置类中统一设置。我们在publisher模块定义一个配置类:log . error("触发return callback,");} });} }log . error("触发return callback,");} });} }Slf4j;import orglog . error("触发return callback,");} });} }
2025-01-09 18:37:10
688
原创 Redis学习(八)GEO、BitMap、HyperLogLog
算出当前这个id对应应该落在bitmap的哪个索引上,然后将这个值从0变成1,然后当用户来查询数据时,此时已经没有了list,让用户用他查询的id去用相同的哈希算法, 算出来当前这个id应当落在bitmap的哪一位,然后判断这一位是0,还是1,如果是0则表明这一位上的数据一定不存在, 采用这种方式来处理,需要重点考虑一个事情,就是误差率,所谓的误差率就是指当发生哈希冲突的时候,产生的误差。注意:bitMap返回的数据是10进制,哪假如说返回一个数字8,那么我哪儿知道到底哪些是0,哪些是1呢?
2024-12-27 16:10:58
816
原创 Redis学习(七)好友功能(点赞、关注、排行榜)
推拉模式是一个折中的方案,站在发件人这一段,如果是个普通的人,那么我们采用写扩散的方式,直接把数据写入到他的粉丝中去,因为普通的人他的粉丝关注量比较小,所以这样做没有压力,如果是大V,那么他是直接将数据先写入到一份到发件箱里边去,然后再直接写一份到活跃粉丝收件箱里边去,现在站在收件人这端来看,如果是活跃粉丝,那么大V和普通的人发的都会直接写入到自己收件箱里边来,而如果是普通的粉丝,由于他们上线不是很频繁,所以等他们上线时,再从发件箱里边去拉信息。需求:利用Redis中恰当的数据结构,实现共同关注功能。
2024-12-26 19:32:34
978
原创 Redis学习(五)优惠券秒杀2——分布式锁
在Lock锁中,他是借助于底层的一个voaltile的一个state变量来记录重入的状态的,比如当前没有人持有这把锁,那么state=0,假如有人持有这把锁,那么state=1,如果持有这把锁的人再次持有这把锁,那么state就会+1 ,如果是对于synchronized而言,他在c语言代码中会有一个count,原理和state类似,也是重入一次就加一,释放一次就-1 ,直到减少成0 时,表示当前这把锁没有被人持有。此时需要通过大key+小key判断当前这把锁是否是属于自己的,如果是自己的,则进行。
2024-12-25 21:24:29
1062
原创 Redis学习(四)优惠券秒杀
由于现在我们部署了多个tomcat,每个tomcat都有一个属于自己的jvm,那么假设在服务器A的tomcat内部,有两个线程,这两个线程由于使用的是同一份代码,那么他们的锁对象是同一个,是可以实现互斥的,但是如果现在是服务器B的tomcat内部,又有两个线程,但是他们的锁对象写的虽然和服务器A一样,但是锁对象却不是同一个,所以线程3和线程4可以实现互斥,但是却无法和线程1和线程2实现互斥,这就是 集群环境下,syn锁失效的原因,在这种情况下,我们就需要使用。
2024-12-24 20:22:32
907
原创 Redis学习(二)短信登录
当注册完成后,用户去登录会去校验用户提交的手机号和验证码,是否一致,如果一致,则根据手机号查询用户信息,不存在则新建,最后将用户数据保存到redis,并且生成token作为redis的key,当我们校验用户是否登录时,会去携带着token进行访问,从redis中取出token对应的value,判断是否存在这个数据,如果没有则拦截,如果存在则将其保存到threadLocal中,并且放行。如果手机号合法,后台此时生成对应的验证码,同时将验证码进行保存,然后再通过短信的方式将验证码发送给用户。
2024-12-21 22:01:42
946
原创 Redis学习(一)redis入门
贴心小建议:命令不要死记,学会查询就好啦Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands )可以查看到不同的命令:当然我们也可以通过Help命令来帮助我们去查看命令。
2024-12-20 20:28:48
744
原创 外卖开发(九)——Excel数据报表ApachePOI
Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI都是用于操作 Excel文件。将数据写入Excel。
2024-12-14 17:44:54
493
原创 外卖开发(八)—— SpringTask(定时任务) 和 WebSocket网络协议
构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)cron表达式在线生成: https://cron.qqe2.com/
2024-12-12 18:47:02
1362
1
原创 外卖开发(三)开发笔记——AOP实现实现公共字段填充、主键回显、抛异常和事务管理
*** 定义注解的value值,对应数据操作类型insert 和 update* @return*/自定义枚举/*** 数据库操作类型/*** 更新操作* 插入操作/*** 自定义通知类,实现公共字段填充*/@Aspect@Component@Slf4jlog.info("开始进行字段填充");//获取当前被拦截方法的数据库操作类型//获取当前方法的参数--实体类对象 反射return;//根据不同的操作类型,为对应的属性通过反射来赋值。
2024-12-02 21:11:51
602
1
原创 SpringBoot学习记录(七)之 Filter和 Interceptor 以及实现登录校验
Filter和 Interceptor 以及实现登录校验
2024-11-24 13:28:40
941
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人