- 博客(678)
- 资源 (400)
- 收藏
- 关注
原创 Mybatis源码学习系列之搭建源码阅读环境
mybatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射等功能。本文分享搭建mybatis3.5.4源码的操作步骤,相对比较详细,希望可以帮忙学习者
2024-04-23 14:56:18 304
原创 NodeJs如何使用SQL模糊查询
最近在改一个比较久的项目,是使用nodejs写的,但是对于长期写java的后端开发来说,还是有点难维护,不过不改bug的话,就需要重新开发,所以只能慢慢看nodejs代码,测试人员提了一个需要支持模糊查询的bug,如果是java写的,可以马上改好,因为不熟悉nodejs代码,还是改了一两个小时,边找资料,边改,记录下来,方便回顾
2024-04-23 14:55:04 217
原创 Redis系列之Cluster集群搭建
在上一篇博客,我们学习Redis哨兵Sentinel集群的搭建,redis的哨兵模式提供了比如监控、自动故障转移等高可用方案,但是这种方案,容量相对固定,要进行持续扩容或者数据分片就不适合,所以有另外一种更复杂的集群方案,Cluster集群模式
2024-04-20 21:46:28 702
原创 Redis系列之哨兵Sentinel集群搭建
在上一篇博客,我们已经知道怎么搭建一个redis主从复制集群,但是主从集群如果出现服务器宕机的情况,是不会自动选举master的,所以需要搭建更加高可用的集群模式,哨兵模式,哨兵集群会自动监控,如果出现master服务器宕机的情况,会重新选举新的master,保证系统的高可用
2024-04-20 21:46:12 371 1
原创 Redis系列之主从复制集群搭建
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。最近学习需要用到Redis,所以就去Linux服务器上部署一个主从复制集群,做下记录,方便以后需要参考
2024-04-09 22:06:23 524
原创 Redis系列之基于Linux单机安装
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。最近学习需要用到Redis,所以就去Linux服务器上部署一个,做下记录,方便以后需要参考。
2024-04-09 22:06:08 552
原创 Linux系列之统计某个字符串出现次数并排序
最近遇到一个流量异常调用的接口,所以需要通过后台日志查看接口调用情况,先统计今天内接口的调用次数,再具体到对应的设备号,就知道哪台设备有问题了,初步想到wc和awk命令来筛选统计,但是真正去写的时候,发现很多写法都不太记得了,所以花了点时间去查手册,找资料,现在整理成博客,方便以后需要就马上统计出来,也分享出来,希望可以帮助需要的人
2024-03-26 17:54:50 587
原创 Linux Tomcat的服务器如何查看接口请求方式?
最近在和安卓开发对接接口,遇到一个接口总是报405错误,有对接经验的开发应该都知道是请求方式不对,假如接口定义为POST请求的,但是客户端却用GET请求,这时候就会报这个错误。Android客户端那边使用xUtils框架请求网络API接口,也是多年的Android开发,对接也是使用post请求过来的,所以初步排查有可能是缓存或者是被代理服务器给转了,为了确定请求的方式和其它业务参数,需要去查看日志验证
2024-03-26 17:54:40 580 1
原创 惠普EliteBook使用VirtualBox安装ISO镜像
如图,下面是几种类型的iso文件,dvd是一个标准版,minimal是一个精简版,everyThing是在标准版基础上补充了很多软件,netInstall是网络安装版,综上考虑,因为我安装只是为了学习,所以安装一个精简版即可。一遍笔记本都不会开启虚拟化技术的,但是在window里使用虚拟机,是需要的,所以需要进入BIOS界面开启。安装好之后,你点击运行是会提示没有盘片的,所以需要自己去下载iso镜像文件,可以去阿里官方镜像网站下载。就可以进入BIOS,图来自官网,按键盘的方向键,选择到。
2024-03-22 15:26:36 350
原创 Redis系列之高可用集群模式介绍
主从模式,是redis集群最基本的模式,主库负责读写,从库负责读。主库的数据会同步到从库,但是从库写的数据不会自动同步到主库,除非用写脚本等方式手动同步。这种模式应急能力比较差,假如出现宕机的情况,需要手动进行修改Redis的主从模式是可以解决负载、数据备份等问题,但是,如果master宕机的情况,slave是不会自动升级为master的,必须手动升级,所以就有了哨兵集群的方案,以及后面介绍的cluster集群先看看官网对Sentinel的介绍大概意思是。
2024-03-22 15:25:56 870
原创 Redis系列之持久化机制RDB和AOF
RDB,Redis Database快照,是Redis默认的持久化方案。当满足一定条件的时候,会把当前内存中的数据写到磁盘,生成一个快照文件,默认的文件名为`dump.rdb`AOF:Append Only File,顾名思义,就是一种追加文件的意思,工作机制比较好理解,redis会将每一个收到的写命令通过write函数追加到文件中,通俗理解就是日志记录AOF机制默认是关闭的,你可以在配置文件中开启,找到redis.conf。
2024-03-08 23:34:02 683 2
原创 SpringBoot系列之使用Redis实现延时队列
在项目中可能会遇到这样的业务场景,下单后,并没有支付,隔多久后,如果用户还没支付,就自动取消订单,针对这种延时支付的场景,有很多实现方法,可以用MQ来实现,但是如果针对一个小项目,要引入MQ,有时候会觉得成本有点大,那可以用redis来实现,redis实现延时队列也有多种方案,比如可以使用发布订阅模式来实现,也可以直接用zSet集合来实现,本博客通过zSet集合来实现延时队列,仅供参考。
2024-02-19 19:27:55 1175
原创 并发编程系列之CompletableFuture实践
CompletableFuture是jdk8之后开始提供的,支持异步的工具类,上手容易,功能相对比较强大。支持函数式编程的方式对各类操作进行组合编排,是进行代码异步处理的一个很好的工具类。
2024-02-06 18:45:00 1608
原创 Linux系列之查看cpu、内存、磁盘使用情况
在linux系统常常需要监控一下服务器的情况,比如内存、磁盘空间、还有cpu的情况,方便我们及时排查问题,在linux中有哪些命令可以来做这些,本博客简单做一个归纳整理
2024-01-29 16:31:38 1207
原创 SpringBoot系列之MybatisPlus实现分组查询
SpringBoot系列之MybatisPlus实现分组查询我之前博主曾记写过一篇介绍,不过之前的博客只是介绍了怎么集成,并没有做详细的描述各种业务场景,本篇博客是对之前博客的补充,介绍在mybatisPlus项目中怎么使用分组查询,仅供参考借鉴。
2024-01-27 17:22:38 1023
原创 SpringBoot系列之JPA实现按年月日查询
Java Persistence API (JPA) 是一种基于 ORM (Object-Relational Mapping) 技术的 Java EE 规范。它主要用于将 Java 对象映射到关系型数据库中,来实现对数据的操作,本文通过SpringBoot集成Spring Data Jpa,来实现对年月日的查询
2024-01-27 17:22:32 496
原创 设置代理服务解决github被墙
最近在提交代码到GitHub,一直提示提交失败Push: unable to access 'https://github.com/username/project.git/': Failed to connect to github.com port 443 after 21140 ms: Couldn't connect to server,我以为是网络太差了,直接使用代理软件,还是同样的提示, 所以咨询了一位优秀的前端开发,才知道需要git配置一下代理
2024-01-24 14:57:54 735
原创 Redis系列之使用Lua脚本
lua语言是一个轻量级的脚本语言,可以嵌入其他语言中使用,调用宿主语言的功能。lua语法简单,小巧,源码一共才200多K,本身不会有太强的功能,很多的语言也支持lua语言,比如redis、Nginxredis语言中完美嵌入了lua脚本功能,redis可以调用lua脚本中的api,lua脚本也可以调用redis中的命令。
2024-01-14 00:00:53 501
原创 Linux系列之不解压直接查看gzip压缩日志
对于Linux的gzip压缩日志文件,可以使用,zcat、zgrep等等命令快速查找定位问题,提高排查效率,不需要解压再查看。
2023-12-28 20:00:00 786
原创 ADB命令安装卸载手机APP
手机内置的浏览器很多广告,推荐的新闻也很多负面的新闻,所以就想卸载内置的手机app,不过现在很多手机都是限制了内置的软件都不能卸载,以前随便获取一下root权限,也是可以卸载的,不过最近搞了一下,发现现在root权限这么难获取,所以就只能另外寻方法了,去网上搜了一下,发现可以使用adb命令来卸载内置软件,不需要root权限。
2023-12-17 21:50:18 326
原创 Redis系列之事务机制
学习mysql数据库的时候,我们知道了事务的ACID特性,Redis也是支持事务的,不过和数据库的事务又有什么区别?在mysql数据库中,我们使用begin开启事务,提交是commit,回滚是rollback,然后Redis中的事务是怎么一回事?redis的事务其实可以看做是一组命令按照顺序,串行执行队列中的命令,其它客户端的命令不会写入到这个队列中。总的来说,redis事务就是一次性、顺序性、排他性的执行一个队列中的一组命令。
2023-12-17 21:49:55 258
原创 Redis系列之简单实现watchDog自动续期机制
在分布锁的实际使用中,可能会遇到一种情况,一个业务执行时间很长,已经超过redis加锁的时间,也就是锁已经释放了,但是业务还没执行完成,这时候其它线程还是可以获取锁,那就没保证线程安全。具体的实现,主要是基于一个定时任务,时间间隔一定要比加锁时间少一点,这里暂时少1s,加上一个lua脚本进行检测,检测不到数据,就关了定时任务
2023-12-12 20:23:14 1258
原创 SpringBoot系列之基于Jedis实现分布式锁
Redis系列之基于Jedis实现分布式锁。在单机环境,我们使用最多的是juc包里的单机锁,但是随着微服务分布式项目的普及,juc里的锁是不能控制分布锁环境的线程安全的,因为单机锁只能控制同个进程里的线程安全,不能控制多节点的线程安全,所以就需要使用分布式锁
2023-12-12 20:00:00 531
原创 SpringBoot系列之启动成功后执行业务的方法归纳
SpringBoot系列之启动成功后执行业务逻辑。在Springboot项目中经常会遇到需要在项目启动成功后,加一些业务逻辑的,比如缓存的预处理,配置参数的加载等等场景,下面给出一些常有的方法。
2023-12-08 20:00:00 304
原创 SpringBoot系列之使用Redis ZSet实现排序分页
相对于set来说,sorted set是一种有序的set,排序是根据每个元素的score排序的,score相同时根据key的ASCII码排序。根据ZSET的个性,我们可以实现一个排序,同时有个序号,也可以实现分页的逻辑,下面给出一个例子,看看具体的实现
2023-12-05 00:01:40 610 1
原创 Redis系列之keys命令和scan命令性能对比
Redis的keys *命令在生产环境是慎用的,特别是一些并发量很大的项目,原因是Redis是单线程的,keys *会引发Redis锁,占用reids CPU,如果key数量很大而且并发是比较大的情况,效率是很慢的,很有可能导致服务雪崩,在Redis官方的文档是这样解释的,官方的推荐是使用scan命令或者集合
2023-12-05 00:01:13 609 1
原创 Redis系列之多线程下使用incr/decr命令
Redis是一个单线程的服务,所以正常来说redis的命令是会排队执行的。incr/decr命令是redis提供的可以实现递增递减的命令。但是如果使用不当也会有线程安全问题。动手实践一下吧,用一个例子来模拟实现高并发场景的秒杀减库存业务。
2023-12-04 20:15:00 1088 3
原创 SpringBoot系列之集成Jedis教程
SpringBoot系列之集成Jedis教程,Jedis是老牌的redis客户端框架,提供了比较齐全的redis使用命令,是一款开源的Java 客户端框架,本文使用Jedis3.1.0加上Springboot2.0,配合spring-boot-starter-data-redis`使用,只给出简单的使用demo
2023-12-04 20:00:00 245
原创 Redis系列之实现分布式自增主键
使用Redis来实现分布式的主键自增主要是依赖于Redis的INCR命令,调用INCR命令的对应key,其数值是实现递增加一,所以利用这个性质,将redis独立部署起来就可以实现分布式环境的自增ID,如图,使用INCR命令的例子
2023-11-09 19:19:37 473
原创 Cygwin工具制作Redis服务端Window版本
在学习到redis,经常需要用到一个redis服务端,如果有买服务器或者本机可以支持经常开虚拟机,也是可以的,如果不具备这些条件,还是本机window系统直接安装一个redis服务端方便。不过新的版本,在微软维护的redis版本库已经很久没更新了,看了一下,最高版本才3.x所以需要自己进行制作window版本的redis服务端,这里介绍一种方法,可以使用cygwin工具来制作EXE文件。
2023-11-09 19:19:27 462
原创 Redis系列之常见数据类型应用场景
Redis支持多种数据类型,比如String、hash、list、Set、SortedSet、Streams、Bitmap、Hyperloglog、Geo(物理位置)等等,在官网也给出了说明,本博客就挑一些比较常有的数据类型说说,本文例子基于Redisson实现
2023-11-08 22:36:45 551
原创 SpringBoot系列之集成Redission入门与实践教程
Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用
2023-11-08 22:36:27 467
原创 数据库事务提交后才发送MQ消息解决方案
在项目开发中常常会遇到在一个有数据库操作的方法中,发送MQ消息,如果这种情况消息队列效率比较快,就会出现数据库事务还没提交,消息队列已经执行业务,导致不一致问题。举个应用场景,我们提交一个订单,将流水号放在MQ里,MQ监听到后就会查询订单去做其它业务,如果这时候数据库事务还没提交,也就是没生成订单流水,MQ监听到消息就去执行业务,查询订单,肯定会出现业务不一致问题。
2023-11-02 20:45:00 658
原创 使用Arthas分析Java线上接口耗时
Arthas 是一款线上监控诊断平台,可以实时查看应用 load、内存、gc、线程的状态信息,可以在不修改代码的情况,定时问题,分析接口耗时、传参、异常等情况,提高线上问题排查效率。
2023-11-02 20:45:00 1449
原创 SpringBoot系列之自定义Jackson对象映射器
在我之前的博客中,有对Springboot2.0集成Mybatis Plus做了比较详细的描述,现在这篇博客介绍,基于开源的jackson api来自定义ObjectMapping(对象映射器),实现对实体类中的日期数据,统一格式化处理
2023-11-02 20:45:00 195
原创 SpringBoot系列之MyBatis Plus自动填充实现
在项目中经常会遇到需要自动填充数据的情况,比如新增一个DO类,里面可能会有id、create_time、modify_time、create_user等等这些通用的字段,每一个接口我们都要去设置值,不仅代码冗余,而且不能统一管理
2023-11-02 20:45:00 276
原创 解决postman打开一直转圈圈的问题
对于后端开发来说,Postman是经常使用的。特别是一些前后端分离的项目,后端开发测试接口就需要一款好用的接口测试工具,postman就是一款使用方便功能比较齐全的测试工具。
2023-11-02 20:30:00 4299
原创 你还在用System.currentTimeMillis()打印代码执行时间?
Hutool是一个小而全的Java工具类库,里面集成了很多实用的工具类,比如文件、流、加密解密、转码、正则、线程、XML等,通过这些工具类就可以快速实现开发。本博客分享的基本使用,通过这个工具类,以后代码里就不需要为了打印代码执行时间,写了很多来计算了合理使用工具类,可以提高代码开发效率。
2023-11-02 20:30:00 258
原创 Google zxing 生成带logo的二维码图片
Google ZXing 生成带logo的二维码图片。给创建的二维码BufferedImage加上logo。创建好比特矩阵后,转换为BufferedImage。先创建比特矩阵,设置默认的宽度、高度、后缀名等等
2023-10-14 23:06:04 958 2
原创 Git 回退代码的两种方法对比
在Git中回退代码,经常使用revert或者reset来做,这两种操作都可以用来回退,但是却有比较大的区别,一般比较安全性的还是使用revert来做,revert是撤回对应的提交记录,然后再提交撤回记录,只是会在Git历史里多一些记录,reset的操作是直接将git历史回退到对应的版本,之后的记录全都撤回了,所以除非情况允许,不然不建议使用
2023-10-14 23:04:20 1280
MySQL数据库之undo log和redo log工作原理.png
2020-10-15
Elasticsearch系列之极速入门与实践教程.html
2020-07-19
report_sql_monitor_text.sql
2020-06-19
report_sql_monitor_html.sql
2020-06-19
AWR手册_v1.0.pdf
2020-05-30
linux系列之常用运维命令整理笔录.docx
2020-01-04
Linux系列之不解压直接查看gzip压缩日志文件.pdf
2023-12-28
adb driver(32/64位)
2023-12-16
Redis系列之常有数据类型应用场景
2023-11-08
Springboot2.2.1版本集成Redisson急速入门与实践教程
2023-11-07
IDEA free-idea-mybatis-2019版本
2023-07-09
SpringBoot系列之RestTemplate使用示例
2022-06-12
基于Zookeeper实现分布式锁实践教程
2022-04-14
browser.min.js和polyfill.min.js(用于支持ES6语法兼容IE).zip
2021-06-03
SpringFramework5.0.x源码学习笔记.pdf
2021-02-03
bcprov-ext-jdk15on-154和bcprov-jdk15on-154下载
2020-12-17
jce6到8对应jar.zip
2020-12-17
bcprov-jdk15on-154.zip
2020-12-03
bcprov-ext-jdk15on-154.zip
2020-12-03
Springframework核心技术AOP详细介绍文档.pdf
2020-11-24
SpringCloud系列之API Gateway开发手册(Hoxton版本).pdf
2020-11-20
前后端接口安全技术JWT极速入门教程.pdf
2020-11-20
部署构建Spring5.0.x版本源码教程参考.html
2020-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人