自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx的一些配置的意思

1.用这个端口可以访问到nginx。

2025-05-24 21:01:07 442

原创 stampedlock锁的简单api

【代码】stampedlock锁的简单api。

2025-05-14 20:59:36 103

原创 关于读写锁的一些理解

【代码】关于读写锁的一些理解。

2025-05-12 22:40:42 377

原创 如何把本地文件推到gitee

注意:一定要是origin,除非你修改了。2.git clone 远程仓库地址。1.在gitee创建仓库。

2025-05-08 22:01:01 90

原创 关于设备状态时长的开发建议

不用每天进行定时任务修改,直接存储设备状态的开始时间,后台进行动态计算。

2025-04-29 16:19:20 93

原创 什么是倒排索引和正排索引?

通过文档这个字段查找词条的过程,看文档字段是否有词条。通过词条查找文档id,在由文档id查找文档的过程。

2025-04-27 16:18:55 370

原创 什么事索引?

将数据中的一部分信息提取出来,重新组织成一定的数据结构,我们可以根据该结构进行快速搜索,这样的结构称之为索引。索引即目录,例如字典会将字的拼音提取出来做成目录,通过目录即可快速找到字的位置。像mysql中把某个字段提取出来,建立索引,进而搜索出全部数据。

2025-04-25 16:21:29 112

原创 get和CountDownLatch,让主线程等待异步线程的方式

【代码】get和CountDownLatch等待异步线程的方式。

2025-04-24 14:58:06 106

原创 thenApply、thenAccept,thenRun的区别

2025-04-24 10:07:25 240

原创 黑马解决订单重复问题的方案

在订单确认页,会先产生预订单id,返回给前端,当用户真正下订单的时候,会把预交易订单id传到后端作为订单表的主键,如果有连点行为,只有第一条会保存成功,因为主键是唯一的,就会避免重复订单。数据一样,订单id不一样怎么解决的。用户在下订单页面连点两次结算。

2025-04-23 22:09:42 100

原创 关于黑马的天机学堂领取优惠券中存在的问题

把mysql中的数据放到redis用于校验,会有修改redis和mysql的操作。存在的问题:mq后续操作报错会有事务问题,涉及两个不同的数据库就不能全部回滚。下面这个流程,设计三个组件。我不信在企业会这么设计。

2025-04-23 21:08:30 198

原创 关于rabbitmq的注意点

/这里不要抛异常,如果抛异常,mq会进行重试。

2025-04-23 20:25:40 87

原创 在redis中校验优惠券限领的技巧

而是直接加1,虽然redis超领,但是mysql中数据正确,未超领。没有先get再校验再+1。

2025-04-22 21:12:22 83

原创 redis的小技巧

hash结构的两种put方式。第一种与redis交互4次。第二种与redis交互1次。

2025-04-22 19:47:06 91

原创 关于gitee上lilishop商城系统的问题

说说领取优惠券的代码,下面代码存在并发问题。校验和后续操作数据库未加锁,存在并发问题。已领取数量加1,非原子操作,存在并发问题。校验优惠券是否可以领取的方法。

2025-04-22 15:45:30 150

原创 关于CountDownLatch的一些理解

或者其它线程countDown,主线程await。主线程await,其他线程countDown。

2025-04-22 09:21:18 98

原创 redisson的trylock参数

/lock方法会无限重试。第一个参数(等待时间),如果设置了,获取锁失败后,就不会立即返回了;//这种写法调用代理对象的方法,方法是有事务处理的。//设置失效时间,看门狗失效。//看门机制不能设置失效时间 采用默认的失效时间30秒 (那重试时间怎么设置呢?//分布式方式,分布式锁,采用redisson锁。

2025-04-15 22:45:05 470

原创 锁跟事务的注意点

声明式事务这个东西很鸡肋的,写完代码,最好测一下多人并发和单人并发。最好抽取方法,再加事务,然后再调代理类。

2025-04-15 21:33:14 94

原创 redisson的unlock方法

getLock底层是hash,大key是userid,小key是线程,value是重入次数。//这种写法调用代理对象的方法,方法是有事务处理的。//设置失效时间,看门狗失效。//看门机制不能设置失效时间 采用默认的失效时间30秒 (那重试时间怎么设置呢?//分布式方式,分布式锁,采用redisson锁。

2025-04-13 19:50:04 221

原创 关于乐观锁的核心

读的时候带上版本号,改的时候对比版本号。

2025-04-12 15:59:28 82

原创 DelayQueue

package com.liu.delay;import java.util.concurrent.Delayed;import java.util.concurrent.TimeUnit;public class Mydelay<T> implements Delayed { private T data; private long stopTime;//过期时间 public Mydelay(long delay,T t) { this.

2025-04-11 14:19:02 321

原创 接口优化方式

如果是串行(按顺序依次执行每个任务)执行的话,接口的响应速度会非常慢。考虑到这些任务之间有大部分都是无前后顺序关联 的,可以并行执行 ,就比如说调用获取商品详情的时候,可以同时调用获取物流信息。通过并行执行多个任务的方式,接口的响应速度会得到大幅优化。实际项目中,一个接口可能需要同时获取多种不同的数据,然后再汇总返回,这种场景还是挺常见的。举个例子:用户请求获取订单信息,可能需要同时获取用户信息、商品详情、物流信息、商品推荐等数据。可以帮助我们来做多个任务的编排,功能非常强大。

2025-04-10 10:36:23 296

原创 关于hashset去重和equals和hashcode方法的关系

如果你只重写equals方法,不重写hashcode,代码就会先计算hashcode,直接判定是两个对象。先计算hashcode,这个地址有多个对象就会再次使用equals判断是不是同一个对象。hashset会判断这两个对象是不是同一个,如果是同一个就会去重。如果不重写equals和hashcode方法就会比较对象地址。

2025-04-09 15:17:27 84

原创 关于后端校验的重要性

比如领取优惠券,你昨天打开的页面,今天优惠券已经失效了,但是你并没有刷新页面,所有你还是可以点击立即领取的。如果你不后端校验,优惠券就会超发。

2025-04-06 10:52:22 119

原创 springboot的线程池和jdk里的线程池

springboot的线程池:jdk里的线程池:

2025-04-05 12:15:37 74

原创 关于权限,ai给的建议

Around("@annotation(com.example.auth.annotation.HasPermission)") public Object around(ProceedingJoinPoint point) throws Throwable { // 提取方法上的注解和权限标识 Signature signature = point.getSignature();- **原理**:将用户的权限信息缓存到内存中(如 Redis、Memcached 等),减少对数据库的直接访问。

2025-04-02 10:41:53 936

原创 aop名词

@Servicepublic class UserService { //连接点(此方法的调用或者异常的抛出都是连接点),目标方法 public void registerUser(User user) { }} //切面(切点+通知)@Aspect@Componentpublic class LoggingAspect { // 切入点(Pointcut) @Pointcut("execution(* com.example.UserService.*(.

2025-03-31 14:12:56 109

原创 关于为什么使用redis锁,不使用zk锁的原因

总结,redis实现的分布式锁虽然是ap模型,理论上锁竞争比较耗性能,但理论就是理论,实际上绝大多数分布式锁只用于避免一些极端情况。而zookeeper实现分布式锁的最大的问题在于国内项目使用zookeeper的概率并不高,引入zookeeper只为了分布式锁太浪费,还增加系统复杂度。至于ap模型的问题,绝大多数分布式锁只是用于避免一些极端情况的,若单一数据会有那么高的并发量你还加锁,那就要考虑这个业务场景设置的合理不合理了。

2025-03-30 22:45:59 285

原创 关于隔离级别,新手容易出现的疑问

场景:a读取订单信息,b修改了商品价格,如果是读已提交,就会读到最新价格,与订单信息发生冲突。那只能使用可重复读隔离级别了。疑问:为什么大多数文章不谈及删除数据,因为删除属于修改数据的范畴。你可以简单理解为删除就是修改。1.读已提交可以读到别人已经提交的修改的数据。可重复读可能会读到别人已提交的新增的数据。2.为啥会有可重复读这种隔离级别?读已提交每次读到最新的提交数据,不好吗?答:确实在有些场景下不好,可重复读要求事物的一致性,而不是实时性。重点:一致性,整体数据是要符合逻辑的。

2025-03-25 12:34:02 110

原创 echarts多柱状图和多折线图结合

legend: {},dataset: {source: [},yAxis: {},series: [

2025-03-15 10:52:06 342

原创 分布式任务调度

xxl-job

2025-03-09 21:05:22 97

原创 关于elementui的校验

addSubmit('add')">确 定</el-button><el-button type="primary" @click="addSubmit('add')">确 定</el-button>一般在添加数据的时候会用到校验,也伴随关闭窗口方法的调用。第一种:伴随关闭窗口设置值(失败)第二种:只有校验(成功)

2025-03-06 15:58:25 83

原创 关于elementui的时间组件与后端时间和oracle数据库时间的对应格式

placeholder="选择日期">

2025-03-04 16:36:18 232

原创 关于redis同步的简单理解

但是像视频播放需要频繁提交记录,就需要合并写操作,这个时候往往会在缓存中去修改或者删除,然后用异步延迟任务去修改数据库。其实像一般的情况,直接从数据库层面去删除和修改,然后清空缓存。以上两种情况是有区别滴!

2025-02-26 09:56:32 91

原创 redis简单理解

一对多就考虑list,set,zset,map。如果存储数据是一对一的,就用string类型。

2025-02-25 15:15:53 87

原创 两种对象转json的方式

对象转json

2025-02-05 21:05:15 224

原创 idea中git的简单使用

git

2025-02-04 20:53:11 260

原创 kafka

消息到分区是负载均衡。消息到消费者组时消费者都会收到消息,是并行消费。

2025-01-21 10:31:04 113

原创 kafka和rabbitmq的相同之处

当生产者(Producer)发送消息到Kafka时,它会指定一个topic,并可以选择性地指定一个分区。如果生产者没有指定分区,Kafka会根据一定的策略(如轮询、键的哈希值等)来决定消息应该被发送到哪个分区。这个策略是可以在Kafka的配置中进行设置的。会把消息发送到交换机,如果不设置topic,交换机就会把消息发送到所有的队列。

2025-01-20 11:07:19 89

原创 mongdb结构与mysql对比

结果:集合类似mysql中的表,文档类似mysql中的行。执行下面两条语句,给集合c1添加多条数据。

2025-01-17 12:43:32 200

空空如也

空空如也

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

TA关注的人

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