- 博客(668)
- 资源 (400)
- 收藏
- 关注
原创 Redis系列之持久化机制RDB和AOF
RDB,Redis Database快照,是Redis默认的持久化方案。当满足一定条件的时候,会把当前内存中的数据写到磁盘,生成一个快照文件,默认的文件名为`dump.rdb`AOF:Append Only File,顾名思义,就是一种追加文件的意思,工作机制比较好理解,redis会将每一个收到的写命令通过write函数追加到文件中,通俗理解就是日志记录AOF机制默认是关闭的,你可以在配置文件中开启,找到redis.conf。
2024-03-08 23:34:02 657
原创 SpringBoot系列之使用Redis实现延时队列
在项目中可能会遇到这样的业务场景,下单后,并没有支付,隔多久后,如果用户还没支付,就自动取消订单,针对这种延时支付的场景,有很多实现方法,可以用MQ来实现,但是如果针对一个小项目,要引入MQ,有时候会觉得成本有点大,那可以用redis来实现,redis实现延时队列也有多种方案,比如可以使用发布订阅模式来实现,也可以直接用zSet集合来实现,本博客通过zSet集合来实现延时队列,仅供参考。
2024-02-19 19:27:55 1125
原创 并发编程系列之CompletableFuture实践
CompletableFuture是jdk8之后开始提供的,支持异步的工具类,上手容易,功能相对比较强大。支持函数式编程的方式对各类操作进行组合编排,是进行代码异步处理的一个很好的工具类。
2024-02-06 18:45:00 1595
原创 Linux系列之查看cpu、内存、磁盘使用情况
在linux系统常常需要监控一下服务器的情况,比如内存、磁盘空间、还有cpu的情况,方便我们及时排查问题,在linux中有哪些命令可以来做这些,本博客简单做一个归纳整理
2024-01-29 16:31:38 1069
原创 SpringBoot系列之MybatisPlus实现分组查询
SpringBoot系列之MybatisPlus实现分组查询我之前博主曾记写过一篇介绍,不过之前的博客只是介绍了怎么集成,并没有做详细的描述各种业务场景,本篇博客是对之前博客的补充,介绍在mybatisPlus项目中怎么使用分组查询,仅供参考借鉴。
2024-01-27 17:22:38 792
原创 SpringBoot系列之JPA实现按年月日查询
Java Persistence API (JPA) 是一种基于 ORM (Object-Relational Mapping) 技术的 Java EE 规范。它主要用于将 Java 对象映射到关系型数据库中,来实现对数据的操作,本文通过SpringBoot集成Spring Data Jpa,来实现对年月日的查询
2024-01-27 17:22:32 462
原创 设置代理服务解决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 673
原创 Redis系列之使用Lua脚本
lua语言是一个轻量级的脚本语言,可以嵌入其他语言中使用,调用宿主语言的功能。lua语法简单,小巧,源码一共才200多K,本身不会有太强的功能,很多的语言也支持lua语言,比如redis、Nginxredis语言中完美嵌入了lua脚本功能,redis可以调用lua脚本中的api,lua脚本也可以调用redis中的命令。
2024-01-14 00:00:53 456
原创 Linux系列之不解压直接查看gzip压缩日志
对于Linux的gzip压缩日志文件,可以使用,zcat、zgrep等等命令快速查找定位问题,提高排查效率,不需要解压再查看。
2023-12-28 20:00:00 640
原创 ADB命令安装卸载手机APP
手机内置的浏览器很多广告,推荐的新闻也很多负面的新闻,所以就想卸载内置的手机app,不过现在很多手机都是限制了内置的软件都不能卸载,以前随便获取一下root权限,也是可以卸载的,不过最近搞了一下,发现现在root权限这么难获取,所以就只能另外寻方法了,去网上搜了一下,发现可以使用adb命令来卸载内置软件,不需要root权限。
2023-12-17 21:50:18 297
原创 Redis系列之事务机制
学习mysql数据库的时候,我们知道了事务的ACID特性,Redis也是支持事务的,不过和数据库的事务又有什么区别?在mysql数据库中,我们使用begin开启事务,提交是commit,回滚是rollback,然后Redis中的事务是怎么一回事?redis的事务其实可以看做是一组命令按照顺序,串行执行队列中的命令,其它客户端的命令不会写入到这个队列中。总的来说,redis事务就是一次性、顺序性、排他性的执行一个队列中的一组命令。
2023-12-17 21:49:55 241
原创 Redis系列之简单实现watchDog自动续期机制
在分布锁的实际使用中,可能会遇到一种情况,一个业务执行时间很长,已经超过redis加锁的时间,也就是锁已经释放了,但是业务还没执行完成,这时候其它线程还是可以获取锁,那就没保证线程安全。具体的实现,主要是基于一个定时任务,时间间隔一定要比加锁时间少一点,这里暂时少1s,加上一个lua脚本进行检测,检测不到数据,就关了定时任务
2023-12-12 20:23:14 1130
原创 SpringBoot系列之基于Jedis实现分布式锁
Redis系列之基于Jedis实现分布式锁。在单机环境,我们使用最多的是juc包里的单机锁,但是随着微服务分布式项目的普及,juc里的锁是不能控制分布锁环境的线程安全的,因为单机锁只能控制同个进程里的线程安全,不能控制多节点的线程安全,所以就需要使用分布式锁
2023-12-12 20:00:00 485
原创 SpringBoot系列之启动成功后执行业务的方法归纳
SpringBoot系列之启动成功后执行业务逻辑。在Springboot项目中经常会遇到需要在项目启动成功后,加一些业务逻辑的,比如缓存的预处理,配置参数的加载等等场景,下面给出一些常有的方法。
2023-12-08 20:00:00 293
原创 SpringBoot系列之使用Redis ZSet实现排序分页
相对于set来说,sorted set是一种有序的set,排序是根据每个元素的score排序的,score相同时根据key的ASCII码排序。根据ZSET的个性,我们可以实现一个排序,同时有个序号,也可以实现分页的逻辑,下面给出一个例子,看看具体的实现
2023-12-05 00:01:40 536 1
原创 Redis系列之keys命令和scan命令性能对比
Redis的keys *命令在生产环境是慎用的,特别是一些并发量很大的项目,原因是Redis是单线程的,keys *会引发Redis锁,占用reids CPU,如果key数量很大而且并发是比较大的情况,效率是很慢的,很有可能导致服务雪崩,在Redis官方的文档是这样解释的,官方的推荐是使用scan命令或者集合
2023-12-05 00:01:13 454
原创 Redis系列之incr和decr命令是线程安全的?
Redis是一个单线程的服务,所以正常来说redis的命令是会排队执行的。incr、decr命令是redis提供的可以实现递增递减的命令,所以这两个命令也是具有原子性的?是线程安全的?这个也是互联网公司面试的常见题,话不多说,动手实践一下
2023-12-04 20:15:00 613 1
原创 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 215
原创 Redis系列之实现分布式自增主键
使用Redis来实现分布式的主键自增主要是依赖于Redis的INCR命令,调用INCR命令的对应key,其数值是实现递增加一,所以利用这个性质,将redis独立部署起来就可以实现分布式环境的自增ID,如图,使用INCR命令的例子
2023-11-09 19:19:37 396
原创 Cygwin工具制作Redis服务端Window版本
在学习到redis,经常需要用到一个redis服务端,如果有买服务器或者本机可以支持经常开虚拟机,也是可以的,如果不具备这些条件,还是本机window系统直接安装一个redis服务端方便。不过新的版本,在微软维护的redis版本库已经很久没更新了,看了一下,最高版本才3.x所以需要自己进行制作window版本的redis服务端,这里介绍一种方法,可以使用cygwin工具来制作EXE文件。
2023-11-09 19:19:27 432
原创 Redis系列之常见数据类型应用场景
Redis支持多种数据类型,比如String、hash、list、Set、SortedSet、Streams、Bitmap、Hyperloglog、Geo(物理位置)等等,在官网也给出了说明,本博客就挑一些比较常有的数据类型说说,本文例子基于Redisson实现
2023-11-08 22:36:45 537
原创 SpringBoot系列之集成Redission入门与实践教程
Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用
2023-11-08 22:36:27 383
原创 数据库事务提交后才发送MQ消息解决方案
在项目开发中常常会遇到在一个有数据库操作的方法中,发送MQ消息,如果这种情况消息队列效率比较快,就会出现数据库事务还没提交,消息队列已经执行业务,导致不一致问题。举个应用场景,我们提交一个订单,将流水号放在MQ里,MQ监听到后就会查询订单去做其它业务,如果这时候数据库事务还没提交,也就是没生成订单流水,MQ监听到消息就去执行业务,查询订单,肯定会出现业务不一致问题。
2023-11-02 20:45:00 517
原创 使用Arthas分析Java线上接口耗时
Arthas 是一款线上监控诊断平台,可以实时查看应用 load、内存、gc、线程的状态信息,可以在不修改代码的情况,定时问题,分析接口耗时、传参、异常等情况,提高线上问题排查效率。
2023-11-02 20:45:00 1261
原创 SpringBoot系列之自定义Jackson对象映射器
在我之前的博客中,有对Springboot2.0集成Mybatis Plus做了比较详细的描述,现在这篇博客介绍,基于开源的jackson api来自定义ObjectMapping(对象映射器),实现对实体类中的日期数据,统一格式化处理
2023-11-02 20:45:00 176
原创 SpringBoot系列之MyBatis Plus自动填充实现
在项目中经常会遇到需要自动填充数据的情况,比如新增一个DO类,里面可能会有id、create_time、modify_time、create_user等等这些通用的字段,每一个接口我们都要去设置值,不仅代码冗余,而且不能统一管理
2023-11-02 20:45:00 259
原创 解决postman打开一直转圈圈的问题
对于后端开发来说,Postman是经常使用的。特别是一些前后端分离的项目,后端开发测试接口就需要一款好用的接口测试工具,postman就是一款使用方便功能比较齐全的测试工具。
2023-11-02 20:30:00 3471
原创 你还在用System.currentTimeMillis()打印代码执行时间?
Hutool是一个小而全的Java工具类库,里面集成了很多实用的工具类,比如文件、流、加密解密、转码、正则、线程、XML等,通过这些工具类就可以快速实现开发。本博客分享的基本使用,通过这个工具类,以后代码里就不需要为了打印代码执行时间,写了很多来计算了合理使用工具类,可以提高代码开发效率。
2023-11-02 20:30:00 192
原创 Google zxing 生成带logo的二维码图片
Google ZXing 生成带logo的二维码图片。给创建的二维码BufferedImage加上logo。创建好比特矩阵后,转换为BufferedImage。先创建比特矩阵,设置默认的宽度、高度、后缀名等等
2023-10-14 23:06:04 898 2
原创 Git 回退代码的两种方法对比
在Git中回退代码,经常使用revert或者reset来做,这两种操作都可以用来回退,但是却有比较大的区别,一般比较安全性的还是使用revert来做,revert是撤回对应的提交记录,然后再提交撤回记录,只是会在Git历史里多一些记录,reset的操作是直接将git历史回退到对应的版本,之后的记录全都撤回了,所以除非情况允许,不然不建议使用
2023-10-14 23:04:20 1231
原创 GitHub 开启 2FA 双重身份验证的方法
使用邮箱翻译插件,进行翻译,哦,原来是要我进行2FA注册,如果不注册,GitHub的访问将收到限制,所以还是得注册一下。查看官方文档,发现有两种方式,一直是通过TOTP移动应用程序,一种是通过短信
2023-08-20 17:41:36 2585
原创 SpringBoot系列之集成Resteasy实现RESTFul接口
JAX-RS:JavaAPI for RESTful Web Services,JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API,给开发者提供了一系列的RESTFul注解。EasyRest:这是Jboss开源的,一款用来定义实现RESTFul应用程序的框架,是基于JAX-RS规范,是JAX-RS API的实现
2023-08-15 22:16:53 678
原创 SpringBoot系列之基于Jersey实现文件上传API
JAX-RS:JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API,给开发者提供了一系列的RESTFul注解。Jersey:是基于JAX-RX API的实现框架,用于实现RESTful Web 服务的开源框架。
2023-08-13 16:05:06 753
原创 Java问题排查工具Arthas安装教程
在生产环境经常遇到大量的日志,同时还有一些性能问题,需要进行进程分析,排查,有时候确实比较花时间,所以可以借助一些开源的框架来实现,Arthas,是阿里开源的一款Java诊断工具,可以实时查看应用 load、内存、gc、线程的状态信息,遇到接口异常,可以在不修改代码的情况,分析业务代码问题,查看方法调用的出入参、异常,监测方法执行耗时,类加载信息,提升线上问题排查效率。
2023-08-05 22:31:12 438
原创 Linux服务器大量日志如何快速定位
在生产环境,定位问题,经常会遇到日志文件特别多的情况,经常会遇到日志比较难拿的情况,所以有什么方法可以快速拿日志?除了在代码里很好的打印关键日志信息外,也需要掌握Linux查看日志的一些实用方法,下面分享一些常用的日志定位方法
2023-08-05 13:56:55 799
原创 简述HashMap的扩容机制
resize这个方法是HashMap的扩容方法。HashMap在扩容时,都是翻两倍,比如16的容量扩大到32,。HashMap进行扩容的方法是比较巧妙的,扩容后,与原来的下标(n-1)&hash相对,其实只是多了1bit位。扩容后节点要么是在原来位置,听起来好像很懵,所以还是认真看下面的分析:下面给出例子,比如从容量为16扩容到32时,画图表示:进行扩容,扩大到原来的两倍:到这一步,下标,扩容后的数据10101和原来的00101相比,其实就是多了1bit,10101。
2023-07-16 17:21:41 3060 1
原创 解决win10电脑无法访问局域网内其它共享文件问题
今天需要上传文件到一个共享的局域网文件夹里,在我的电脑和浏览器访问//192.168.0.16//public都提升访问受限,开始以为是因为用户没授权,后来一般沟通后,发现其它电脑都能正常访问的,所以确定是自己电脑配置问题
2023-07-14 23:54:52 1523
原创 IntelliJ IDEA安装Mybatis 插件Free Mybatis plugin
在开发一些Mybatis的项目,经常需要写一个Mapper接口,在找代码过程,经常需要去找对应的xml文件,所以非常的不方便。自从有了免费的free-mybatis-plugin插件之后 ,在可以实现在idea里一键跳转到对应的xml文件,反之,在xml文件也可以一键跳转到对应mapper接口。
2023-07-09 12:23:45 2481
原创 Dubbo项目启动报错ClassNotFoundException: org.apache.curator.RetryPolicy
Dubbo项目启动报错ClassNotFoundException: org.apache.curator.RetryPolicy,ClassNotFoundException异常可能是缺少某些依赖的jar包,所以需要在maven的pom.xml文件添加上相应的maven依赖就可以啦,此处添加curator-framework和curator-recipes
2023-07-05 19:34:26 1182
原创 IDEA启动Tomcat控制台乱码问题解决方法
最近项目需要用到Tomcat跑一个项目,但是开发Sprintboot项目久了,也很少用Tomcat,因为Springboot是集成Tomcat等中间件的,所以不需要下载Tomcat,好了,回归真题,本博客介绍跑Tomcat过程遇到的控制台日志乱码问题及解决方法。
2023-07-01 14:26:47 1597
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关注的人