自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 关于token生成

最近在一个老师那里了解到了使用MD5生成token令牌,而不是采用传统复杂的jwt令牌生成,tokenUserInfoDto.getUserId()+ StringTools.getRandomString(Constants.LENGTH_20)这里通过拼接用户id,getRandomString生成随机数字,拼接起来再通过MD5加密生成最后的token.这种方式生成token可以应用再中大型项目,经测试每秒并发生成token百万可以保持极低概率重复。

2025-03-28 22:55:09 809 1

原创 rabbitmq延时插件

使用rabbitmq的延时插件实现延时消息下载插件,一般是 ,ez 结尾的文件使用延时消息1.声明延时交换机在代码中声明一个延时交换机,指定其类型为 x-delayed-message,并设置其路由类型。2.发送延时消息在发送消息时,通过设置消息的 headers 属性来指定延时时间 (单位为毫秒)

2025-03-22 18:49:04 1156

原创 死信消息(队列ttl+死信exchange)

在rabbitmq中消息被认定为死信一般由一下几种情况发生:1.消息被消费者拒绝(通过或basic.nack),并且设置。2.消息过期,即消息在队列中的生存时间TTL 超过了设置的限制,3.队列已满,导致消息被丢弃死信exchange:死信交换机的使用可以帮助避免消息的丢失,并提供了重试和诊断问题的机制。当消息成为死信后,会被发送到死信交换机,并通过该交换机的路由规则投递到绑定的死信队列。死信交换机可以是任何一种常见类型的交换机,例如Direct Exchange。

2025-03-22 17:24:13 558

原创 双拦截器实现登录校验

第一个拦截器获取token,执行刷新,保存用户信息到ThreadLocal中,如果token为null或为空,我们直接放行,所以所不管有没有token第一个拦截器放行,它主要作用是将用户信息存到ThreadLocal中,第二个拦截器我们执行校验token,直接从ThreadLocal中获取用户信息,不存在,拦截,存在,放行,这样我们使用双拦截器,使得我们在用户登录之后每次刷新首页token都会被刷新不需要重新登录。2.查询Redish的用户,不存在,则拦截。2.查询Redish的用户,不存在,则拦截。

2025-03-17 23:07:27 391

原创 Spring Data Redis 的地理空间查询

少了一个s,这两个是两个不同的类, 第一次我们调用getContent()方法得到的是List<T>集合,这是我们的----多个店铺结果集-----,再进行遍历得到我们单个店铺结果集这里直接叫做---结果集---,第二次我们调用getContent()得到的是我们的-----具体结果列表,它俩的区别是:结果集== 具体结果列表+元数据(元数据也就是。<RedisGeoCommands.GeoLocation<String>>>集合对象,这里我们还用一次getContent(),为什么。

2025-03-15 22:18:47 362

原创 今天学习以下滚动分页查询

分页查询根据集合中score值来查询。其中 Max 是指从最大score开始查,Min指的是查询到最小的哪个score值的位置,offset 指 在[Max,Min]这个区间我需要查询的开始位置,而count指在[Max,Min]这个区间查询结束位置,跟分页查询的pageSize是一个意思。服务器实现数据分页查询,并返回给前端。下面是一段Java 实现滚动查询的逻辑。实现滚动查询主要考虑的参数主要有三个,data:查询出来的数据,offset:偏移量,mintime: 就是指score的Max值的位置。

2025-03-15 00:27:11 216

原创 使用Java8中streamApi 处理集合数据

这段代码是典型的使用streamApi来处理集合数据的代码,下面分段分析:首先申明top5是我使用redis对key进行查询查出来的一个Set集合,这里写的不是很明白。因为它是一个Set集合所以他可以调用stream(),原因是Set集合有实现Stream接口的方法我们就可以调用stream()。调用stream()方法,我们可以把top5转换成一个stream流,流是Java8引入的一种高级迭代器,与传统的循环和迭代器相比,Stream提供了更简洁、更高效、更易于并行化处理的方式。

2025-03-13 11:39:13 365

原创 Java线程获取用户id唯一标识的方法

Java线程获取用户id唯一标识的方法

2025-03-12 19:15:02 471

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除