Java线上服务CPU飙升问题定位
安装(以下任意一种方式)🐌 下载使用下载整个工程的脚本直接clone工程使用简单、方便更新,不过要安装有git。
123456789git clone git://github.com/oldratlee/useful-scripts.gitcd useful-scripts# 使用Release分支的内容git checkout release-2.x# 更新脚本git pull
包含2个分支:
dev-2.x:开发分支
release-2.x:发布分支,功能稳定的脚本
当然如果你不想安装git,github是支持svn的:
123456svn co https://github.com/oldratlee/useful-scripts/branches/release-2.xcd useful-scripts# 更新脚本svn up
PS:我的做法是把useful-scripts checkout到$HOME/bin目录下,再把$HOME/bin/useful-scripts/bin配置到PATH变量上,这样方便我本地使用所有的脚本。
打包下载下载文件release-2. ...
五分钟学会 Java 开发效率神器 Lombok!
简介Lombok 是一个 Java 第三方库,可以透过简单的注解省略 Java 的代码,像是 setter、getter、logger…等,目的在消除冗长的代码和提高开发效率
假设你在类上加上了一个 @Getter 和 @Setter 注解,那你就不用在写烦人的 getter 和 setter,lombok 会自动帮你产生出来啦!
之所以加个 lombok 的 @Getter 注解就可以帮我们自动生成所有变量的 getter,是因为 lombok 参与了 Java 在 compile 阶段生成 .class 档的过程,lombok 会帮我们自动写一堆 getter,然后塞进 .class 档,所以真正被编译出来的 User.class 档桉,是包含完整的 getter 的
简单的说,lombok可以算是一种语法糖,只是在帮我们增进开发效率而已,实际上所产生出来的.class档仍然是完全正常的
安装 Lombok要在 project 中使用 lombok,除了要在 maven 中加入 lombok 依赖,还要安装 IDEA lombok 插件
1. 加入 maven 依赖123456& ...
Centos7修改swap分区大小
查看初始状态查看原先swap大小
1234[yi@localhost ~]$ free -h total used free shared buff/cache availableMem: 3.7G 429M 2.7G 11M 552M 3.0GSwap: 2.0G 0B 2.0G
原先swap文件位置
1234root@gpu-2:~# swapon -s文件名 类型 大小 已用 权限/swapfile1 file 12582908 0 -2root@gpu-2:~#
创建一个新的swap文件一般swap分区要大于或等于物理内存(1-1.5倍),最大一般有20G即可,我这里创建12G:
123456789101112131415161718192021222324252 ...
博客迁移之痛
今天对博客进行的迁移,导致大量博文的丢失,我的心好卵痛,是这样的
博客迁移今天对博客进行的迁移,导致大量博文的丢失,我的心好卵痛,是这样的
特别是以前的博文应为不是Markdown格式导致和现在的博客系统不兼容,在博文的图片使用的是本地服务器存储,图片丢失也导致不得不放弃一部分文章,先让我哭一会。
不过值得高兴的是迁移总算结束了,速度快乐很多呦,你不要试试吗!
Ubuntu18.04修改swap分区大小
查看初始状态查看原先swap大小
12345root@gpu-2:~# free -h 总计 已用 空闲 共享 缓冲/缓存 可用内存: 62G 417M 38G 3.0M 23G 61G交换: 2.0G 0B 2.0Groot@gpu-2:~#
原先swap文件位置
1234root@gpu-2:~# swapon -s文件名 类型 大小 已用 权限/swapfile1 file 12582908 0 -2root@gpu-2:~#
创建一个新的swap文件一般swap分区要大于或等于物理内存(1-1.5倍),最大一般有20G即可,我这里创建12G:
12345678910111213141516171819202122232425262728293031323334 ...
PostgreSQL中jsonb数据格式操作
建表SQL123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105CREATE TABLE "public"."contents_review_log" ( "id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, "app_id" int4 NOT NULL, "open_id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL, & ...
哪吒的魔童降世豆瓣影评分析
说明今天看豆瓣的时候一不小心看到了哪吒之魔童降世这部动漫,不由自主的滚动鼠标看着影评。突然躁动的小心心想看看所有的影评说的啥(脑子:不,你不想)。
辣么多,想想还是算了,心疼我的电脑一秒,继续让下翻发现有一个比较少影评,只有一万多条,还带有短评,那还等什么,抄家伙。
爬虫的过程就不说了基本就是F12找标签,我把代码上传到了GitHub,有兴趣可以下载看看:
1https://github.com/HWYWL/spring-boot-2.x-examples/tree/master/spring-boot-douban
然后就是等待数据全部落地。
成果接下来就是见证奇迹的时刻,我们来瞅瞅他们在说啥。
我们先使用词频图谱来看一下最直观,唉,可怜的敖丙被哪吒挤在角落瑟瑟发抖。配角就没人权吗,不知道我肩负着整个龙族的命运吗?下次见到导演用冰冻他一天。哈哈开玩笑,除此还有两个比较直观的关键词:国漫、好看,看来大部分人对国漫还是比较乐观的,虽有不足,但能看到努力。
看完词频我们根据不同的纬度来看看,其他数据
这个不由最 ...
膨胀的我爬了一下链家
说明别问为什么爬的是二手房,问就是买不起,嗯,是的,我连现在爬的二手房也一样买不起。
我们言归正传,我在连接上找一了一下二手房,挺多的,六万多套,就是不知道我的在哪。
听说今年房地产不景气,价格有所下降(一点点),所以我风平浪静的心也开始蠢蠢欲动,啊,春天来了吗!!!
爬虫需要知道几个关键信息,一个是分页,另一个是详情页,我们从链家的地址可以看出https://gz.lianjia.com/ershoufang/pg2/,pg2应该就是单词page2的缩写,赶紧翻到第三页,果不起然是pg3,分页有了我们来看看详情页,万能的F12,通过标题直接显示出详情页,连拼接都省了,链家真贴心。
再看看里面的详情页所有数据被安排的整整齐齐,真香。
竟然万事俱备,那我们就上吧,代码撸起来!!!
撸代码爬虫框架用的是 webmagic 通过一个循环生成 pg 页,再把怕下来的数据落到MySQL数据库。别问为啥用 webmagic ,问就是喜欢(简单)。
巴拉巴拉写好代码,代码不复杂,只要会xpath,撸遍天下都不怕,代码地址:
1https://github.com ...
重磅:Redis 5.0 正式版发布了,19 个新特性!
Redis 5.0 GA 正式版发布了!1234下载地址:download.redis.io/releases/redis-5.0.0.tar.gz源码下载:github.com/antirez/redis/releases/tag/5.0.0
先看一下 Redis 5 带来的更新内容:
新的流数据类型(Stream data type) https://redis.io/topics/streams-intro
2.新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
RDB 现在可存储 LFU 和 LRU 信息
4.redis-cli 中的集群管理器从 Ruby (redis-trib.rb) 移植到了 C 语言代码。执行 redis-cli --- cluster help 命令以了解更多信息
新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
...
使用RedisTemplate访问Redis数据结构
Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。
下面来对这5种数据结构类型作简单的介绍:
Redis 5种数据结构的概念大致介绍到这边,下面将结合Spring封装的RedisTemplate来对这5种数据结构的运用进行演示
RedisTemplate介绍spring 封装了 RedisTemplate 对象来进行对redis的各种操作,它支持所有的 redis 原生的 api。
RedisTemplate在spring代码中的结构如下:
1234567org.springframework.data.redis.coreClass RedisTemplate<K,V>java.lang.Object org.springframework.data.redis.core.RedisAccessor org.springframework.data.redis.core.RedisTemplate& ...