自定义博客皮肤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)
  • 问答 (6)
  • 收藏
  • 关注

原创 CopyOnWriteArrayList 源码分析

否则,持有的是两个不同的数组,也就是说其他线程对于集合的修改对于迭代器是不可见的,这样就有了 迭代器的弱一致性问题。因为 CopyOnWriteArrayList 写操作的不单单需要加锁,更需要数组的复制,那就意味着,在新增操作时,堆中是存在两个数组的,如果是数组较大,且写入操作多,是有可能会造成频繁 GC的。这里与 ArrayList 的迭代器不同的是,ArrayList 遍历迭代器使用的是就是集合中存储元素的数组,而这里使用的是传入的数组。主要流程就是 加锁,复制新数组,添加元素到新数组,替换旧数组。

2024-06-03 17:11:16 381 1

原创 es数组操作

elasticsearch 数组操作

2024-01-11 09:54:21 465

原创 基于redis实现消息队列的几种方式

基于 redis 来实现队列。

2023-12-25 09:39:18 158 1

原创 redisson分布式锁组合spring事务解决锁被释放但事务还未被提交的问题

定义的注解里面建议组合spring的Transactional注解 这样的话,使用者能够定义像传播特性、隔离级别等之类的属性,而不需要我们重新定义/**// 开启事务 如果不需要组合的话 可选择使用此注解 // 但需要稍微改一下后续的代码 // boolean transactional() default false;// 组合事务注解 最推荐 很方便 Transactional transactional();// 开启锁 boolean lock() default true;

2023-06-14 18:33:48 3189 2

原创 spring中实现接口限流功能

注解实现的话方便一点 我们只需要在想要限流的接口上绑定注解就行/**// 标识限流类型 FlowRuleType type() default FlowRuleType . DEFAULT;// 回调方法 String callBack() default "";// 提示信息 String returnMsg() default "接口被限流";// 默认限流值 int count() default 1;DEFAULT , // 默认 IP , // ip OTHER // 其他 }

2023-06-09 19:35:00 202 2

原创 使用Object去强转可变参数类型

我在存储的时候 传参是一个String 即使使用 (Object)String 的写法其实也不会有太大影响。问题就出现在使用Object强转可变参数类型这里 变成嵌套数组之后 取出的 key 就变成了一个 String类型的数组对象 导致在redis中找不到键 然后删除失败。最近在使用redisTemplate去删除hash表中的某个键时,发现一直删除不了。对于redis中的key序列化 我使用的是 StringRedisSerializer 这个类。前置条件全部删除完毕,来看代码。

2023-06-03 17:29:53 99

原创 自定义spring-boot-starter

自定义实现spring-boot-starter

2023-06-01 17:45:21 141

原创 redis订阅发布模式简单使用

redis 发布订阅 简单使用

2022-10-13 15:29:28 467

空空如也

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

TA关注的人

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