- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 缓存雪崩、缓存击穿、缓存穿透详解及解决方案
缓存雪崩指的是由于缓存服务器在同一时间大面积失效或宕机,导致大量请求直接打到数据库,瞬间引发数据库压力激增,甚至导致数据库崩溃。缓存击穿是指某个热点数据在缓存中失效的瞬间,大量的并发请求同时访问该数据,由于该数据在缓存中失效,大量请求同时打到数据库,造成数据库压力骤增。这种情况通常发生在热点数据或访问频繁的数据上。缓存穿透是指客户端频繁访问一些根本不存在的缓存数据,由于缓存中没有这些数据的记录,每次请求都直接打到数据库,导致数据库压力增大。这通常是由于用户输入非法或恶意构造的请求引发的。
2024-09-27 14:40:13
1797
原创 Java调用第三方接口、http请求详解,一文学会
在 Java 11 之后,官方推出了HttpClient作为原生的 HTTP 请求工具,替代了旧的。相比HttpClient提供了更现代化的 API,且支持同步和异步请求。首先,我们定义一个工具类HttpUtils,封装通用的 HTTP 请求方法。.connectTimeout(Duration.ofSeconds(10)) // 设置连接超时.build();// 用于处理JSON/*** 发送GET请求* @param url 请求的URL地址。
2024-09-26 13:40:22
3070
原创 Spring事务一文读懂
在数据库操作中,事务是指一组操作的集合,它们要么全部成功提交,要么全部失败回滚。Atomicity(原子性):事务中的操作要么全都完成,要么全都失败。Consistency(一致性):事务执行前后,数据库保持一致的状态。Isolation(隔离性):事务之间相互独立执行,互不干扰。Durability(持久性):事务提交后,结果是持久保存的,即使系统崩溃,数据也不会丢失。Spring 的事务管理为我们提供了强大的工具,能够轻松应对复杂的业务逻辑。
2024-09-26 10:42:58
859
原创 Java Lambda 表达式详解及其用法 —— 含集合操作示例
Lambda 表达式是一种可以把函数作为参数的简洁表达方式,主要用于替代匿名内部类的冗长语法。它使得函数式编程风格更容易实现。parameters:表示输入参数列表,可以没有、一个或多个参数。->:Lambda 操作符,将参数和方法体分开。expressionstatements:可以是单个表达式或代码块,作为方法体执行。// 输出 25通过以上例子,我们可以看到 Lambda 表达式在 Java 8 中的强大功能。
2024-09-25 09:13:19
1139
原创 JAVA集成Jasypt进行加密、解密(SpringBoot)
Jasypt 是 Java 平台的简化加密工具,支持对文本和数据进行加密和解密,尤其适合应用于 Spring Boot 项目的配置文件加密。简单易用的 API支持对属性文件内容加密支持常见的加密算法与 Spring Boot 的无缝集成Jasypt 支持多种加密算法和配置项。如果你需要使用不同的加密算法、密钥生成方式等,可以通过 Java 配置进行自定义。通过自定义// 配置加密密钥,务必保密 config . setPassword("mysecretkey");
2024-09-24 16:58:56
3410
1
原创 [42000][1701] Cannot truncate a table referenced in a foreign key constraint删除数据时外键约束报错解决
[42000][1701] Cannot truncate a table referenced in a foreign key constraint
2023-12-29 10:50:58
861
1
原创 自定义redisTemplate
RedisConf自定义redisTemplatepackage com.loveletter.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.JsonTypeInfo;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.d
2022-03-20 18:29:08
685
原创 DateUtils工具类
DateUtils格式化工具类持续更新…package com;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @author loveLetter * @create 2022/3/20 */public class DateUtils { /** * 获取当前时间戳 * <p>格式为:20220320162414
2022-03-20 17:36:46
159
原创 NoSQl概述
书山有路勤为径,学海无涯苦作舟了解NoSQL演变1、单机MySQL时代90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候,更多的去使用静态网页Html~服务器没有太大的压力!思考一下,这种情况下:整个网站的瓶颈是什么?1、数据量太大,一个机器放不下2、数据索引(B+Tree),一个机器内存放不下3、访问量(读写混合),一个服务器承受不了只要开始出现以上三种情况之一,那么就需要晋级2、Memcached(缓存)+MySQL+垂直拆分网站80%的情况下都是在读,.
2022-03-17 11:58:33
1900
原创 RabbitMQ入门详解
在介绍RabbitMQ之前,我们先来看下面一个电商项目的场景:商品的原始数据保存在数据库中,增删改查都在数据库中完成。搜索服务数据来源是索引库(Elasticsearch),如果数据库商品发生变化,索引库数据不能及时更新。商品详情做了页面静态化处理,静态页面数据也不会随着数据库商品更新而变化。如果我们在后台修改了商品的价格,搜索页面和商品详情页显示的依然是旧的价格,这样显然不对。该如何解决?我们可能会想到这么做:方案1:每当后台对商品做增删改操作,同时修改索引库数据及更新静态页面。方案2:搜索
2022-03-11 17:10:09
374
原创 多线程基础知识点
一、线程与进程进程:进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程:线程是一条执行路径,是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实
2022-03-01 17:43:58
2090
原创 多值多条件批量更新SQL
应用场景:List中存放多个实体,并且每个实体的值不一样,我们需要进行批量更新时下方sql解读:根据不同people_id更新不同值的people_name、people_age字段 update table_name <trim prefix="set" suffixOverrides=","> <trim prefix="people_name =case" suffix="end,"> <foreach collection="peopleLi
2022-02-27 16:47:55
3361
1
原创 Linux常用命令
命令含义事例ls列出当前目录下的内容lscd ..(两个点)进入上一级目录cd..cd /进入指定目录cd /apwd查看当前所在目录位置pwdmkdir创建文件夹mkdir amkdir -p创建多级mkdir -p a/b/ccp -r拷贝文件cp -r a bmv将源文件名 source_file 改为目标文件名 dest_file将文件 source_file 移动到目标目录 dest_directory ...
2022-02-24 15:59:31
792
原创 Java中的StringUtils引入及使用
pom.xml中引入依赖<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version>&l
2022-02-24 11:35:28
7456
原创 List去除重复元素
1.使用LinkedHashSet删除arraylist中的重复数据(有序)// 创建ListList<String> words= Arrays.asList("a","b","b","c","c","d");// 将ArrayList转为LinkedHashSetLinkedHashSet<String> set=new LinkedHashSet<>(words);// 将LinkedHashSet转回ArrayListList<String>
2022-02-23 14:56:26
2202
原创 Oracle数据库设置逐渐自增
创建序列CREATE SEQUENCE TABLE_SEQ(自定义序列名)INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE;在需要使用自增的表上创建触发器CREATE OR REPLACE TABLE_TRG(自定义触发器名称)BEFORE INSERT ON TABLE_NAME(表名) FOR EACH ROWBEGIN SELECT TABLE_SEQ(之前定义的序列名).NEXTVAL INTO : NEW..
2022-02-22 14:10:36
824
原创 删除Mac启动台里的无法正常删除的图标
经常会不通过appstore下载软件,也就是从网页中下载dmg,自己安装,但是当我不再想要这个软件,然后把它卸载掉之后就会发现,launchpad里还是遗留了这个软件的图标,而且删不掉。这个时候,就可以下面的办法就管用啦!思路:找到存放launchpad中图标的数据库,对数据库进行操作直接删除对于的图标。第一步找到comappledocklaunchpad文件夹打开一个folder,按command+shift+G,在前往当中输入地址/private/var/folders,然后在里边自己尝试找到
2022-02-22 09:42:09
2096
自定封装StringUtils常用方法
2022-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人