- 博客(51)
- 资源 (7)
- 收藏
- 关注
原创 javase-tutorial-index
http://docs.oracle.com/javase/tutorial/java/index.html
2015-03-03 16:33:42 449
原创 Windows环境Node.js安装及环境配置
说明:这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。1、下载完成后,双击“node-v6.9.2-x64.msi”,开始安装Node.js。在键盘按下【win+R】键,输入cmd,然后回车,打开cmd窗口。
2024-10-14 19:04:15 878
原创 spring 事物使用场景说明
在使用**@Transactional注解声明事务时,有时我们想自定义回滚的异常,spring也是支持的。可以通过设置rollbackFor**参数,来完成这个功能。@Slf4j@Service如果在执行上面这段代码,保存和更新数据时,程序报错了,抛了SqlException、DuplicateKeyException等异常。而BusinessException是我们自定义的异常,报错的异常不属于BusinessException,所以事务也不会回滚。
2024-09-06 11:36:41 988
原创 vim 快捷命令
如下①. 快速切换光标到底行G(输shift 加 g)②. 快速切换光标到首行gg③. 快速跳转到行首0④. 快速跳转到行尾$⑤. 快速跳转到指定行1、进入末行模式2、输入跳转的行数3、回车,跳转到第n行⑥. 快速复制文本内容信息yynyy : n行整
2024-09-06 10:35:48 661
原创 -bash: locate: command not found 以及No package locate available. 解决办法
好了,下边就可以正常使用了。
2024-08-30 17:34:17 331
原创 linux查找mysql日志
MySQL的日志文件通常存储在数据库服务器的数据目录下,具体位置取决于MySQL的配置文件。# 查找MySQL配置文件# 查找MySQL日志文件。
2024-08-30 17:32:44 1224
原创 netstat 命令详解
Netstat是一个用于显示网络连接、路由表、接口统计等网络相关信息的命令。常用参数包括-a、-t、-u、-n、-l等,分别用于显示所有连接、TCP或UDP连接、不转换域名、只显示监听状态的服务。通过-PID和程序名可以查看哪个进程占用了特定端口,而-l选项则用于列出所有监听状态的Socket。
2024-08-29 11:36:58 403
原创 Linux 或 MacOS 系统通过 SCP 上传文件到 Linux 云服务器
在实例列表页面记录需上传文件云服务器的公网 IP。如需了解更多 scp 命令功能,可执行。执行以下命令,将 Linux 云服务器上的文件下载至本地。1. 执行以下命令,向 Linux 云服务器上传文件。确认上传,并输入登录密码,即可完成上传。如果您使用系统默认密码登录实例,请前往。(标有:云服务器创建成功字样)获取。已购买 Linux 云服务器。例如,您需要将 IP 地址为。例如,您需要将本地文件。上传至 IP 地址为。
2024-08-29 11:28:00 279
原创 Linux 系统通过 FTP 上传文件到云服务器
2. 执行以下命令,在本地机器上连接云服务器,并根据界面提示,输入 FTP 服务的用户名和密码。若 Linux 系统的本地机器已安装了 ftp,请跳过此步骤,执行下一步。执行以下命令,将云服务器中的文件下载至本地。执行以下命令,将本地文件上传至云服务器中。1. 执行以下命令,安装 ftp。进入如下界面,即表示连接成功。例如,将云服务器中的。
2024-08-29 11:24:18 488
原创 记录一次polarDB出现Waiting for table metadata lock
在业务实践中,常见的 DDL 阻塞 原因是由于无法获取到 MDL 锁,即 Waiting for table metadata lock。语句无法获取到MDL锁,因此处于阻塞状态。至此,您可以结合实际业务需求,等待事务提交或者使用。表,进一步获取对应线程的详细信息。表,可以快速定位到 DDL 阻塞的原因。即为被阻塞的DDL线程,而线程。命令中止事务后,重新执行。
2024-08-28 16:11:44 341
原创 MySQL 死锁处理
两者的作用一摸一样,只是在begin可能成为关键字的时候,使用start transaction 可以 避免这种情况,start transaction或者begin开启一个事务,然后使用commit提交事务或者ROLLBACK回滚事务。是MySQL的默认事务隔离级,它解决了脏读和不可重复读的问题,确保了同一事务的多个实例在并发读取数据时,会看到同样的结果。是事务中最低的级别,在该级别下的事务可以读取到其他事务中未提交的数据,这种读取的方式也被称为脏读(Dirty Read)。
2024-08-28 16:07:37 904
原创 记录一次mysql添加索引导致《Waiting for table metadata lock》
3.大概原因:对electric_invoice这个表上添加了联合索引。但是这个表有未提交的事物。添加索引属于ddl操作,会等待事务完成。当该表处于《Waiting for table metadata lock》状态,将阻塞其他任何操作,包含读。所以设计该表的sql查询是慢查询。2.mysql中show processlist 出现大量的 Waiting for table metadata lock。今天收到线上数据库慢查询报警,对用户造成了严重影响。这应该算是一次严重的线上事故。
2024-08-27 15:43:32 243
原创 Mysql索引不当引发死锁问题
本文通过具体遇到的问题,抽丝剥茧的方式介绍了引起死锁的原因,从而介绍了mysql的索引机制和类型。重点需要弄懂mysql的加锁机制,方便在日后的工作中使用。
2024-08-27 15:26:31 1042
原创 Lock wait timeout exceeded; try restarting transaction的错误
一直处于锁等待状态,直到超时报错。因为使用的数据库为mysql,而InnoDB表类型会出现锁等待的情况,在出现锁等待时,会根据参数innodb_lock_wait_timeout(默认50s)的配置,判断是否需要进行timeout的操作,如果等待时间超过了设置的时间就会报错。本次问题是因为update语句导致的锁表,因为是在疲劳测试(压测12小时)过程中出现的问题,使用10并发进行压测,每秒差不多15笔申请调用,所以上述的1234都不符合,查看发现mysql资源不足,内存达到100%,确认实际异常原因。
2024-08-15 16:10:18 1073
原创 记druid 在配置中心下的一个大坑: cpu 达到 100%
不断的加断点, 发现了 com.alibaba.nacos.client.config.impl.CacheData 的 safeNotifyListener 方法, 其中的 listener.receiveConfigInfo 方法似乎出现了问题, 执行到了1的地方,2却不会执行,真是奇了怪了, 难道陷入了死循环?我们的配置中心是nacos,从com.alibaba.nacos.client.Worker.fixed来看, 跟nacos 好像有点关系。就像水中的月亮,看起来近在咫尺,却远在天边。
2024-08-15 09:45:45 854
原创 微服务熔断与降级
熔断是在服务端进行配置。一般是某个服务故障,或者异常引起的,类似现实世界中的保险丝,当某个异常条件被触发,直接熔断整个服务,而不是一直等到此服务超时。降级是在客户端配置。所谓降级,一般是从整体负荷考虑。就是当某个服务熔断之后,服务器将不再被调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值。这样做,虽然服务水平下降,但好歹可用,比直接挂掉要强。降级逻辑可以是返回默认值、调用备用服务等。开启的条件:当满足下面两个条件之一断路器就会开启。
2024-08-14 17:51:18 690
原创 properties转yml文件写法
这里的animal数据是数组类型往下拓展需要空两个字符再写“-”,然后再空一个字符,才能写自己的数据,不过idea很人性化,当你写完第一数据,点击回车,他会自己生成下一行的格式,你只需要敲数据就行了。我们可以看到userName:zhangsan和在了一起,idea将他们识别为person的一个单独元素了,而不是之前的字典类型。在把userName删掉后,我们输入一个per,idea就会给我们提示我们自己编写的类的元素。我们可以看到网页上的数据就是一个\,也就是没有转义,依然是一个换行。
2024-08-14 14:28:43 965
原创 HikariCP连接池:Possibly consider using a shorter maxLifetime value.
对应 mysql 修改配置(单位 秒)
2024-08-14 14:02:10 248
原创 微服务系列:Spring Cloud 之 Feign、Ribbon、Hystrix 三者超时时间配置
Feign自身有超时时间配置Feign默认集成的Ribbon中也有超时时间配置假如我们又使用了Hystrix来实现熔断降级,Hystrix自身也有一个超时时间配置注:低一点的版本中默认集成的有Hystrix,高版本中又移除了。
2024-08-14 10:05:49 1492
原创 IDEA 插件大汇总
工欲善其事,必先利其器。如果是学生党,可以免费使用全系列产品~地址:https://www.jetbrains.com/shop/eform/students。
2024-08-05 10:17:12 458
原创 IDEA使用小技巧
在改动函数名时,idea会同步选择项目中相同的地方进行修改,如果idea筛选的改动位置不是我们希望改动的,可以右键-exclude,排除当前行,如果某个包下都不想改,可以在包上右键-exclude,统一排除。选择文件中出现的所有同一字符串:选择字符串-Ctrl+Alt+Shift+J。实例化对象自动生成变量。选中后,Shift+F6或右键-Refactor-Rename。查看复制历史,Ctrl+shift+V,双击即可粘贴内容。纯文本粘贴,不会格式化,Ctrl+alt+shift+V。
2024-08-05 10:10:36 1091
原创 Spring框架中的@Configuration
Configuration注释中的proxyBeanMethods参数是springboot1.0,升级到springboot2.0之后新增的比较重要的内容,该参数是用来代理bean的。
2024-08-01 10:32:46 796
原创 git警告:warning: LF will be replaced by CRLF
转换行尾符为CRLF:如果你在Unix/Linux上开发,并且希望行尾符被转换为CRLF,可以运行以下命令:git config --global core.autocrlf true。在Windows系统中,默认使用CRLF(回车加换行符)作为行尾符,而在Unix/Linux系统中,默认使用LF(换行符)作为行尾符。Git会自动进行换行符的转换,以便确保文件在不同系统上的一致性。根据你的开发环境和需求,选择适合的解决方案,并确保在团队协作时所有成员都使用相同的换行符设置,以避免不必要的换行符警告。
2024-07-20 18:43:31 504
原创 logback中pattern规则
对相应类的全路径进行缩减,num为缩减后的最大长度(但只作为指导值,实际路径存在“最小字符串”),原则是:(1)、最小值为全路径以“.”为分隔符划分后的字符串的首字母,以小写形式与“.”重新拼接,但是最后一个字符串不缩写,如abc.def.ghi.jkl的最小字符串为“a.d.g.jkl”,最小值为9;(4)如果前述num是11,扩充后总长11,等于num,则扩充成功,继续步骤(3)的扩充,直到扩充失败。5、%file(或%f)。不同系统中回车换行的标识符不同,如“\n、\r\n”,因此强烈推荐使用%n。
2024-07-20 18:38:29 496
原创 jdk17或者其他版本中没有jre的问题
jre 文件夹是可以用命令自动生成的,在window环境中,进入jdk目录所在的文件夹,运行下面命令就会自动 生成jre文件夹。
2024-07-09 10:37:02 504
原创 MySQL的count()方法慢
mysql用count方法查全表数据,在不同的存储引擎里实现不同,myisam有专门字段记录全表的行数,直接读这个字段就好了。而innodb则需要一行行去算。比如说,你有一张短信表(sms),里面放了各种需要发送的短信信息。sms建表sql:sms表;需要注意的是state字段,为0的时候说明这时候短信还未发送。此时还会有一个异步线程不断的捞起未发送(state=0)的短信数据,执行发短信操作,发送成功之后state字段会被置为1(已发送)。也就是说未发送的数据会不断变少。
2024-07-05 09:38:56 862
原创 mysql SQL_NO_CACHE 不缓存查询/不使用缓存
SQL_NO_CACHE的真正作用是禁止缓存查询结果,但并不意味着cache不作为结果返回给query。
2024-07-04 18:43:07 471
原创 列式存储和行式存储
当使用数据规模为1TB、记录条数为十四亿四千万的表时,微软声称基于列的查询在CPU时间上会有16倍的提升,而在使用时间上会有455倍的提高。使用列存储的索引也会导致性能的降低。需要注意的是,虽然MySQL本身主要是基于行存储的,但也可以通过其他方式(如分区、归档、归档表等)来优化存储空间的使用。同时,一些新的MySQL版本和插件也提供了对列存储的支持或模拟,以适应不同的使用场景。从上图可以很清楚地看到,行式存储下一张表的数据都是放在一起的,但列式存储下都被分开保存了。
2024-07-04 17:03:36 231
原创 InnoDB和MyISAM的区别
innodb是mysql的默认事务型引擎,也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(short-lived)事务,短期事务大部分情况是正常提交的,很少会被回滚。innodb的性能和自动崩溃恢复特性,使得它在非事务型存储的需求中也很流行。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑innodb引擎。MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(gis)等,且访问的速度快。但MyISAM不支持事务和行级锁,而且有一个毫无疑问的缺陷就是崩溃后无法安全恢复。
2024-07-04 16:57:29 372
原创 OLAP和OLTP的区别是什么?
1、基本含义不同:OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,记录即时的增、删、改、查,比如在银行存取一笔款,就是一个事务交易。OLAP数据量大,因为OLAP支持的是动态查询,所以用户也许要通过将很多数据的统计后才能得到想要知道的信息,例如时间序列分析等等,所以处理的数据量很大。OLAP(On-Line Analytical Processing):联机分析处理,OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
2024-07-04 16:54:50 496
原创 Mysql慢日志、慢SQL
一般情况下,我们只需开启慢日志记录,配置下阈值时间,其余参数可按默认配置。在 MySQL 中,还可以设置将未走索引的SQL语句记录在慢日志查询文件中(默认为关闭状态)。long_query_time 的默认值为10,意思是运行10秒以上(不含10秒)的语句)。在MySQL中,日志输出格式有支持:FILE(默认),TABLE 两种,可进行组合使用。默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。查看执行慢的SQL语句,需要先开启慢查询日志。
2024-07-04 13:08:47 823
原创 pandas 常用API
pandas作为python在数据科学领域关键包之一,熟练其API是必备的我们使用如下缩写:df:任意的Pandas DataFrame对象s:任意的Pandas Series对象同时我们需要做如下的引入:pd.read_csv(filename):从CSV文件导入数据pd.read_table(filename):从限定分隔符的文本文件导入数据pd.read_excel(filename):从Excel文件导入数据。
2024-07-01 14:14:02 781
原创 Hexo 服务保持链接,使用 PM2
npm install pm2 -g# vi /opt/blog/blog.jsvar exec = require('child_process').exec;exec("hexo server",function(){})# pm2 start blog.js -x# pm2 show 0# pm2 stop <app_name|id|'all'|json_conf># pm2 restart <app_name|id|'all'|json_conf>#
2024-06-01 12:24:06 232
原创 5 种 Redis 数据备份与恢复方式
使用 RDB 文件做迁移时,需要注意需要先关闭掉目标 redis 的 aof 功能,因为如果二者同时存在的话,会优先于 aof 的方式进行数据恢复。
2024-05-07 18:10:52 2794
原创 Docker常用命令
直接进入centos 容器启动命令的终端,不会启动新进程,多个attach连接共享容器屏幕,参数:--sig-proxy=false 确保CTRL-D或CTRL-C不会关闭容器。参数:-a 提交的镜像作者;docker commit -a="DeepInThought" -m="my redis" [redis容器ID] myredis:v1.1。--no-trunc 显示完整的提交记录;在 centos 容器中打开新的交互模式终端,可以启动新进程,参数:-i 即使没有附加也保持STDIN 打开;
2024-04-11 16:36:06 336 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人