- 博客(153)
- 收藏
- 关注
原创 设计模式代码
参考地址:https://www.runoob.com/design-pattern/design-pattern-tutorial.html。
2024-04-03 14:19:37
573
原创 自定义redis缓存和本地缓存注解
*** 二级缓存:redis+本地缓存* 默认启用redis缓存,本地缓存由withLocalCache控制* @author*//*** 是否启用本地缓存* @return*//*** 分钟级缓存:* 一级缓存的失效时间为10分钟,这里二级缓存的失效时间应该大于等于10分钟,* 不然失去二级缓存的意义* 秒级缓存:本地缓存失效时间是5s* @return 缓存失效时间 (默认分钟)*//*** 缓存失效时间单位。
2024-01-19 18:09:01
467
原创 redis缓存
键只能为字符串,值:字符串、列表、集合、散列表、有序集合。Redis 用来做分布式锁。支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。
2024-01-17 18:57:30
978
原创 分布式锁实现用户锁
秒杀、支付等场景,用户频繁点击按钮,会造成同一时刻调用多次接口【第一次请求接口还没响应数据,用户又进行了第二次请求】,造成数据异常和网络拥堵。添加用户锁,在用户第二次点击按钮时,拦击用户请求。:用redis的setIfAbsent 进行加锁,防止死锁,10秒后自动释放锁。自定义锁注解,利用切面给所有加注解的方法加分布式锁防止用户重复点击按钮。:用户锁注解,自定义锁注解,然后给需要加锁的方法加上此注解。秒杀活动开始,用户点击按钮,进行上锁,【默认10秒】内不能再点击,默认10s后自动释放锁。
2024-01-15 18:24:13
429
原创 java锁的分类
乐观锁不会添加锁,无锁算法,没有线程被阻塞。悲观锁拿到资源就加锁,线程被阻塞。乐观锁:CAS算法 Compare-And-Swap(比较并交换)的缩写,轻量级锁。Java中,synchronized关键字和Lock的实现类都是悲观锁。乐观锁适合读操作多的场景,悲观锁适合写操作多的场景。
2024-01-11 16:55:24
885
原创 自定义分布式锁注解
*** 尝试获取分布式锁* @param lockKey 锁* @param requestId 请求标识* @param expireSeconds 锁有效时间* @param overTime 超时时间* @param timeUnit 时间单位* @return 是否获取成功* @throws InterruptedException 中断异常*//*** 尝试获取分布式分段锁* @param segments 分段标识* @return 返回成功加锁的段*/
2024-01-02 14:35:58
447
原创 git 克隆无权限-重新输入账号密码
克隆项目代码时提示没有权限,有可能是没有登录账号,也可能是账号密码改了,运行下面指令,然后重新克隆项目,下载的时候会让你重新输入账号密码,则克隆成功。
2023-12-06 19:48:14
1439
原创 Could not find artifact com.sun:tools:jar:1.8 at specified path ${env.JAVA_HOME}\..\lib\tools.jar
Could not find artifact com.sun:tools:jar:1.8 at specified path ${env.JAVA_HOME}\..\lib\tools.jar。
2023-08-31 19:45:00
672
原创 解决.gitignore无效的问题
读了下git文档,才发现,这些东西其实很简单,很容易理解。cached其实就是暂存区,然后一个是工作的目录,你的工作目录的东西做出修改时,会和缓存区进行对比,因此你git status时,会显示出来这个差异,因此为了使.gitignore中的内容生效,那么就删除掉暂存区,然后将所有本地文件追踪一下,就得到最新的暂存区文件。git 总提交乱七八糟的文件,改了gitignore无效,是git 缓存问题。
2023-08-30 21:51:41
170
原创 mybatis升级到mybatis-plus
mybatis升级到mybatis-plus,两个共存之前依赖只有mybatis,没有plus。分页插件
2023-08-23 20:45:00
1650
原创 mysql进阶-事务的隔离级别
最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。
2023-08-05 16:02:12
182
原创 MYSQL进阶-事务的基础知识
事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。
2023-08-03 20:10:02
669
原创 mysql进阶-MYSQL逻辑架构和SQL执行流程
mysql进阶-MYSQL逻辑架构和SQL执行流程 ,1. 连接层:客户端和服务端建立连接,客户端发送SQL至服务端; 2. SQL层(服务端): 对SQL语句进行查询处理;与数据库文件的存储方式无关; 3. 存储引擎层: 与数据库文件打交道,负责数据库文件的存储和读取。
2023-08-02 10:29:31
114
原创 mysql进阶-修改linux服务器中MySQL的字符集
linux中mysql8默认的字符集是latin1,在插入中文时会报错,所以一般在配置好mysql时需要修改字符集为utf8查看当前数据库的字符集发现默认是latin1。
2023-08-01 21:00:00
828
原创 mysql进阶-触发器
MySQL从 5.0.2 版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。触发器是由 事件来触发 某个操作,这些事件包括 INSERT 、 UPDATE 、 DELETE 事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会 自动 激发触发器执行相应的操作。当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来实现。
2023-08-01 15:02:21
145
原创 sql-从一个或多个表中向一个表中插入 多行【表数据复制】
INSERT还可以将SELECT语句查询的结果插入到表中,此时不需要把每一条记录的值一个一个输入,只需 要使用一条INSERT语句和一条SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入 多行。2. 更新数据 使用 UPDATE 语句更新数据。
2023-07-30 15:14:00
1676
2
原创 拦截器实现登录拦截和跨域问题
什么是拦截器:在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的。最常用的登录拦截、或是权限校验、或是防重复提交、或是根据业务像12306去校验购票时间,总之可以去做很多的事情如何用拦截器。
2023-07-26 10:56:25
236
原创 An unexpected connection driver error occured
An unexpected connection driver error occured
2023-06-27 19:52:52
617
原创 elasticsearch语法和整合springboot
elasticsearch-head是一个前端项目,需要node环境,功能是作为一个es可视化界面。个人感觉比kibana更实用,可以看到索引,文档和进行增删改查,效果图如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g99xoE3E-1680862475876)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230406180844170.png)]
2023-06-17 16:48:09
266
原创 http://registry.cnpmjs.org/vue-router failed,
http://registry.cnpmjs.org/vue-router failed,
2023-05-12 16:20:15
939
原创 on duplicate key update 更新无效
例如:项目场景:项目使用了sharding分库分表,有不存在则保存,存在则更新的操作需求,所以使用了,但是无效,报错了。用的mybatis-plus。的使用看另外一篇文章。
2023-05-08 14:34:41
2535
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人