自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis持久化

redis提供了两种不同的持久化方式来将数据存储到硬盘里面。一种方法叫快照(snapshotting,也可以叫RDB),它可以将存在于某一时刻的所有数据都写入硬盘里。另一种方式叫只追加文件(append-only file,也叫AOF),他会在执行写命令时,将被执行的写命令复制到硬盘中。这两种持久化方法可以同时使用,也可以单独使用,甚至也可以不使用。

2024-01-31 17:58:17 835

原创 Redis为什么快?

在进行渐进式 rehash 的过程中, 字典会同时使用 ht[0] 和 ht[1] 两个哈希表, 所以在渐进式 rehash 进行期间, 字典的删除(delete)、查找(find)、更新(update)等操作会在两个哈希表上进行: 比如说, 要在字典里面查找一个键的话, 程序会先在 ht[0] 里面进行查找, 如果没找到的话, 就会继续到 ht[1] 里面进行查找, 诸如此类。那么这里同样会带来新的问题,当数组容量特别大的时候,如果发生rehash那么会移动大量的元素,这样仍然会导致redis线程阻塞。

2024-01-11 17:38:00 1213

原创 谈谈你对synchronized的理解

涉及对象头markword,锁膨胀,synchronized用法

2023-12-27 16:03:59 814

原创 HashMap扩展问题:HashMap如何实现线程安全?

面试官:聊聊你对ConcurrentHashMap的理解。我:巴拉巴拉巴拉。。。AQS?面试官提笔写在了简历上(基础差,表达能力不行)

2023-12-25 18:21:26 1075

原创 HashMap扩展问题:为什么容量要保证在2的N次方?

面试官:为什么容量要保证在2的N次方?我:因为计算机是2进制!面试官:?????尊嘟假嘟。好我们聊点别的。

2023-12-19 22:12:52 1039

原创 深入理解HashMap

面试官:谈谈你对HashMap的理解我:贵公司的水很好喝,哪个牌子的

2023-12-19 12:26:10 374

原创 记一次mysql视图引起的生产事故

业务需求涉及无关联的多表分页查询,因此使用union合并了两张表数据做成了一个视图(问题就出在这里)。

2023-09-19 14:40:32 78

原创 windows安装elasticSearch+kibana+ik(网盘链接)7.17.7版本

链接:https://pan.baidu.com/s/1scgAvuEMaB5pkN-MUA7Imw。然后进入elasticsearch/bin,双击elasticsearch.bat启动es。打开kibana,进入config文件夹,修改kibana.yml文件。再然后进入kibana/bin,双击kibana.bat。进入到es控制台,然后就可以输入命令了。点击左侧工具栏,打开开发工具。查看kibana是否启动。

2023-08-18 10:47:21 197

原创 java 整合 neo4j 5.9.0简单使用

删除了@RelationshipEntity注解,变成了@Relationship,type是关系名称,比如。由于查到的视频资料都是老版本的neo4j,新版本中并没有之前的那些注解。所以这里简单写几个自学的例子。比如String转Date,或者String转Object(某个自定义实体对象)@NodeEntity()注解变成了@Node注解。都是简单的东西,只是希望和我一样不会的人少走点弯路。方式1:关注与当前节点有关系的对象,那么就是。这一段中的 【测试关系】 就是type。方式2:关注关系+关系对象。

2023-08-01 14:53:19 487 4

原创 记一次大数据调feign接口导致OOM的情况

大数据导出调feign接口OOM

2023-05-19 17:00:12 587

原创 mysql什么情况下会锁表

在MySQL中,当对表进行写操作(如INSERT、UPDATE、DELETE)时,需要对相关的数据行加锁以确保数据的一致性和完整性。在某些情况下,MySQL需要锁定整个表而不是部分行,这种情况下会锁定整个表,导致其他会话不能访问表。因此我们需要在条件字段上加索引,从而将表锁变为行锁。

2023-03-23 09:57:39 3593

原创 word转pdf+word转html

【代码】word转pdf+word转html。

2023-03-20 17:49:22 140

原创 aop解决 防重复提交

aop实现防重复提交

2023-03-17 15:14:43 393

原创 一发请求就服务重启的问题记录

aliyun之前设置的资源限制内存是2048,而业务中存在大数据导入的情况。当请求访问到服务时,超出了资源限制,从而导致服务自动重启或者 请求的线程直接被kill。解决方案: 增大资源限制。由2048-》4096 问题解决。记录一次由于资源限制导致服务重启的问题。

2023-01-12 11:28:18 222

原创 活动对象模式 学习记录

活动对象模式学习记录

2022-12-22 15:48:35 60

原创 抽象工厂示例

抽象工厂模式 示例

2022-12-22 15:00:56 50

转载 CSRF攻击的解释

CSRF的相关解释

2022-12-16 16:06:02 135

原创 nacos服务注册底层+心跳底层

1. 服务注册:其实就是调用HttpClient发送一个http请求实现的服务注册。信息中包含了命名空间,服务名,组名,集群名,ip,端口,权重,健康状况等信息。2. 心跳监测:通过将心跳信息封装成一个BeatTask线程任务,然后交给定时线程池执行。如果长时间服务端无法接收到客户端的心跳,此时服务端认为你的这个服务实例出问题了,这样服务端就会主动从服务注册表中剔除该服务实例,该服务实例就不存在服务端了。因此监测返回的状态码会为20404,之后会重新将该服务实例注册到服务端。...

2022-07-07 21:02:15 665

原创 ReetrantLock非公平锁底层原理

ReetrantLock非公平锁底层原理

2022-06-23 20:31:39 139

原创 ReetrantLock释放锁的过程

ReetrantLock释放锁的过程

2022-06-23 20:30:32 119

转载 mysql主从库复制原理

mysql主从数据库复制

2022-06-03 17:27:22 76

原创 MVCC实现原理

MVCC,Multi-version Concurrency Control多版本并发控制。是一种用来解决读写冲突的无锁并发控制。他通过为事务分配单项增长的时间戳,为每个修改保存一个版本。版本与事务时间戳相关联。读操作只读该事务开启之前的数据库的快照。所以MVCC可以为数据库解决以下问题: 1、在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作时也不用阻塞读操作。提高了数据库并发读写的性能。 2、能够解决脏读、不可重复读,以及一定程度的幻读等事务隔离性问题。但是不能

2022-06-03 16:03:38 740

原创 ACID是靠什么来保证的?

ACID依靠什么来保证?mysql如何保持redolog与binlog的一致?

2022-06-02 23:46:51 1333

转载 Repeatable Read可重复读不能完全解决幻读问题

原文转载:https://springboot.io/t/topic/260CREATE TABLE (可重复读能够一定程度的解决幻读,但是不能完全解决

2022-06-02 23:10:43 585

转载 yml中配置分页插件的各参数意义

yml分页插件配置,及各参数意思:配置参数说明:helperDialect :分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect 属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:oracle , mysql , mariadb , sqlite , hsqldb , postgresql , db2 , sqlserver , informix , h2 , sqlserver2012 , derby特别注意:使用 SqlServer201

2022-05-30 19:49:15 566

原创 模仿springboot自动配置datasource

1、创建一个自己的spring-boot-starter(叫啥都行),结构如下:2、导入依赖    需要依赖spring-boot-starter。因为需要用到springboot的注解。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2

2022-05-30 19:25:25 187

原创 mybatis-generator-maven-plugin

1、导入依赖 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.9</version> </dependency> <dependency>

2022-05-30 19:02:32 918

原创 swagger的使用

1、导入依赖<!--swagger--> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</ar

2022-05-30 18:57:40 64

原创 zookeeper安装以及dubbo学习笔记

dubbodubbo3.0中文文档链接:https://pan.baidu.com/s/1lxlNFQev19RKjXZKxxegEA提取码:bbab一个高性能javaRPC框架。R:Registry 注册中心P:Provider 服务提供者C:Consumer 服务消费者三大核心能力:1、面向接口的远程方法调用2、智能容错和均衡负载3、服务自动注册和发现dubbo运行流程:1、服务支持者将所有服务的URL地址注册到注册中心2、服务消费者向注册中心订阅需要的方法3、注册中心

2022-05-29 12:27:41 448

原创 springboot自定义错误页面

Spring Boot默认的错误页面路径是在resources/templates/error/目录下,当发生404、500状态码时,默认会跳转到该路径下的页面。也可以自定义错误页面:配置类@Configurationpublic class ErrorConfig implements ErrorPageRegistrar { @Override public void registerErrorPages(ErrorPageRegistry registry) {

2022-05-29 11:19:26 1460

原创 springboot集成kaptcha验证码

导入依赖<!-- kaptcha 验证码开源组件 --><dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>kaptcha.xml<?xml version="1.0" encoding="

2022-05-26 19:59:19 152

原创 指令重排的理解

指令重排的前提:1、单线程中执行结果如果一致,那么可以任意交换。2、语句之间没有依赖关系,那么可以交换。指令重排的原因:为了提高执行效率。理解:        a=1;        a++;        b=2;   

2022-05-25 21:28:12 510

原创 nio的简单笔记加实例

NIO的三个重要组成(或许能这么说吧):Channel、Buffer、Selector。俺们先简单介绍一下他们三个的作用。Channel:见名知意。这是一个通道。它的好处就是两端都可以进行读写操作。并且InputStream,OutPutStream,RandomAccess都提供了获取到FileChannel的api也就是getChannel()。FileChannel俺不太熟。主要记录一下其他的Channel。socket通道基本特点:1、socket通道都继承了AbstractSelecta

2022-05-23 21:35:46 218

原创 html页面通过ajax上传文件以及表单数据

js获取前端数据function register() { var user_name = $("#username").val(); var user_password = $("#password").val(); var user_email = $("#email").val(); var user_photo = $("#user_photo")[0].files[0]; var user_birthday = $(

2022-05-21 11:25:31 617

原创 springIOC注入的三种方式

User类@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private int id; private String name; private Department department; private Department department1;}Department类@Data@AllArgsConstructor@NoArgsConstructorpublic c

2022-05-16 19:35:08 3718

原创 Mapper.xml动态sql

if<select id="selByCon" parameterType="People" resultType="People"> select * from people where 1=1 <!-- OGNL 表达式,直接写 key 或对象的属性.不需要添加任何特殊字符号 --> <if test=" name != null and name!='' "> and name = #{name} </if> <if test="

2022-05-15 23:43:03 582

原创 xml中#{}与${}的区别

#{}与${}的区别#{}:#{}会在sql预编译之后再传入值。如果是基本数据类型或字符串类型 可以使用#{0},意味着第一个参数也可以使用#{param1} 代表第一个参数如果有且只有一个参数#{}括号中可以随便写,当然,这种写法不推荐。如果是对象,那么需要在parameterType中声明参数是这个对象,然后需要在对象中保证需要获取的参数有get和set方法。比如 private int id; 需要为它提供get和set方法。然后我们就可以通过#{id}来获取到对应的值。在没有配置映射的

2022-05-15 23:30:34 1957

原创 Mybatis整个log4j

log4j使用1、导入log4j包依赖2、创建log4j.propertoes文件log4j.rootCategory=error, CONSOLE ,LOGFILE#log4j 总体输出级别(有5个级别)log4j.logger.com.xycf.mybatis.dao=debug#配置dao包的输出级别log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender#负责输出的类,指控制台输出log4j.appender.CONSOLE.layo

2022-05-15 23:29:49 51

原创 mapper package

如果用package方式配置mapper需要將mapper.xml文件与mapper接口放在同一个包下且同名然后在pom.xml中配置加载资源文件,因为xml文件在java包下默认是不加载的

2022-05-15 23:01:38 881

原创 Servlet的JDBCUtils模板

有druid:import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;import java.io.IOException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;impor

2022-05-05 21:12:28 72

空空如也

空空如也

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

TA关注的人

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