自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十三月的博客

星光不问赶路人,时光不负有心人

  • 博客(380)
  • 收藏
  • 关注

原创 Redis教程(十六):Redis的缓存穿透、缓存击穿、缓存雪崩

用户需要查询一个数据,例如要查一张ASSET_CODE = '999999'的卡片,查询redis中没有,就直接去请求数据库,数据库中也不存在对应的数据,返回空或错误,当很多用户同时请求并且都没有命中!于是都去请求了持久层的数据库,那么这样会给持久层数据库带来非常大的压力。当高并发或有人利用不存在的Key频繁攻击时,数据库的压力骤增,甚至崩溃,这就是问题。

2024-05-22 17:51:17 298

原创 Redis教程(十五):Redis的哨兵模式搭建

分别复制三份Redis工作文件夹,里面内容一致接着修改7002的配置文件,【redis.windows-service.conf】port 7002改成7003也同样修改这样就指定了7001为主机,7002、7003为从机。

2024-05-21 10:25:11 470

原创 Redis教程(十四):Redis的三主三从集群搭建

Redis的集群是一种允许多个Redis节点在网络上互联并协作的技术,它为处理大规模数据提供了更高的性能和可扩展性,同时具有数据高可用性和故障容忍性。在Redis集群中,数据会被分成多个部分,每个部分在不同的Redis节点上进行存储。这就是所谓的数据分片或分区。分片可以有效地分散存储和处理的负载,并且可以在新增节点时进行动态地、无中断地数据重新分片。Redis集群具有很高的可用性,因为每个节点都可以有零个或多个从节点。

2024-05-20 16:37:15 913

原创 Redis教程(十三):Redis的主从复制模式搭建

Redis的主从复制模式是一种常用的数据复制和备份机制,其核心目的是将一台Redis服务器(称为“主”服务器)的数据复制到一个或多个Redis服务器(称为“从”服务器)。这种机制提供了数据的高可用性、负载均衡和故障恢复解决方案。在Redis的主从复制模式中,数据的读写操作主要在主服务器上执行,而从服务器主要用于读操作和备份,以此来分担主服务器的读负载压力并提供数据的高可用性。

2024-05-20 16:14:49 620

原创 Redis教程(十二):Redis的持久化RDB和AOF

因为RDB文件只用作后备用途,建议只在Slave上持久化RDB文件,而且只要15分钟备份一次就够了,只保留 save 900 1 这条规则。如果Enable AOF ,好处是在最恶劣情况下也只会丢失不超过两秒数据,启动脚本较简单只load自己的AOF文件就可以了,代价一是带来了持续的IO,二是AOF rewrite 的最后将 rewrite 过程中产生的新数据写到新文件造成的阻塞几乎是不可避免的。

2024-05-20 11:06:43 718

原创 Redis教程(十):Redis中三种特殊数据类型命令

Bitmap指的是位存储,操作二进制位来进行记录,就只有0 和 1 两个状态,可能需要我们统计用户的登陆信息,员工的打卡信息等等。Hyperloglog指的是基数,两个数据集中不重复的元素,在Redis中,会有一定的误差性。,占用的内存是固定的,2^64个元素,相当于只需要12kb的内存即可。Geospatial是地理位置类型,我们可以用来查询附近的人、计算两人之间的距离等。查找指定元素指定范围内的元素:查询南京 500公里范围有哪些城市。的,我们都可以用Bitmap来进行操作。

2024-05-20 10:39:16 246

原创 Jackson的使用技巧,实现一个JSON字符串转Map的工具

Jackson是Java编程语言中使用非常广泛的一个用于处理JSON格式数据的库。它提供了快速、灵活、功能丰富的方式来解析和生成JSON数据。

2024-05-17 14:41:12 266

原创 SpringBoot项目中关于Tomcat的可配置主要参数,accept-count的真正含义

Apache Tomcat 是一个开源的服务器软件,它的主要作用是提供一个环境,用于执行使用 Java 技术(如 Servlet、JavaServer Pages (JSP)、Java WebSocket)编写的 Web 应用程序。:Tomcat 提供了 Servlet 容器,用于加载、解析和执行 Servlet 和 JSP 页面。Servlet 和 JSP 页面是用于构建动态 Web 网站的主要技术,而 Tomcat 则提供了执行这些技术的环境。

2024-05-16 17:34:40 30

原创 Redis教程汇总篇,让你从入门到精通

Redis 是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)以及更复杂的数据结构,如位图(bitmaps)、超日志(hyperloglogs)和地理空间索引(geospatial indexes)。:即使Redis是一个内存数据库,它也支持两种持久化机制(RDB快照和AOF日志),可以将内存中的数据保存到磁盘,这保证了数据的安全性。

2024-05-15 16:23:49 1439

原创 Redis教程(九):Redis中Hash类型的常用命令

往Hash中添加两个<key,value>数据,如果没有,自动创建一个Hash结构。删除指定hash中的key,可多个,key删除后对应的value也会被删除。hash中添加key不存在则新增,存在则不新增,添加成功返回1,失败返回0。获取hash中的指定key,获取hash中key是name的值。判断key是否存在于指定的hash,存在返回1,不存在返回0。获取hash中所有的值,包含key。获取指定hash中的所有value。获取指定hash的key的个数。获取指定hash中的所有key。

2024-05-15 15:56:59 215

原创 Redis教程(八):Redis中zSet类型的常用命令

查询zSet中所有的值,第一个参数为0代表从小到大排序,为1代表从大到小排序,-1表示所有数据。往zSet有序集合中添加数据,1,2,3代表权重,one,two,three代表数据。将zset的值根据key来从小到大排序并输出,-inf 负无穷 +inf 正无穷。只查询score<=1的值并且排序从小到大。查询指定zset的所有值,包含序号的值。查询指定区间内的元素个数,从0到100。移除指定的元素,可多个。查看zset的元素个数。

2024-05-15 15:55:25 239

原创 Redis教程(七):Redis中Set类型的常用命令

移动指定set中的指定元素到新的set中,myset减少一个元素apple,myset2增加一个元素apple。往Set集合中添加元素,自动创建一个集合myset,添加了四个元素。取差集,查询指定的set之间的差集,可以是多个set。取交集,查询指定的set之间的交集,可以是多个set。取并集,查询指定的set之间的并集,可以是多个set。判断某个值在不在set中,存在返回1,不存在返回0。随机抽取Set中的元素,随机抽取1个。随机抽取Set中的元素,随机抽取3个。随机删除Set中的元素,随机删除2个。

2024-05-15 15:54:08 219

原创 Redis教程(六):Redis中List类型的常用命令

更新指定下标的元素,更新list集合中下标为‘1’的元素为‘newV5’,如果指定的‘集合’不存在,报错,如果集合存在,但是指定的‘下标’不存在,也会报错。移除集合list中的元素是v3的元素3个,如果实际中集合元素数量不达标,不会报错,返回移除成功的数量。在指定元素后面插入一个元素,在集合中的v3元素之后加上一个元素newv3。在指定元素前面插入一个元素,在集合中的v3元素之前加上一个元素newv3。查询list的指定范围元素,从下标0开始,1结束,两个元素。查询list的指定下标元素。

2024-05-15 15:52:02 211

原创 Redis教程(五):Redis中数字操作常用命令

指定key为‘num’的数据自减1,可以减为负数。指定key为‘num’的数据自增10。指定key为‘num’的数据自增1。指定key为‘num’的数据自减3。给key为‘num’插入数字0。

2024-05-15 15:48:58 190

原创 Redis教程(四):Redis中String类型的常用命令

如果key为'name'的数据不存在,则插入一个key为'name',值为'apple'的数据,已存在则不插入。截取字符串,相当于java中的subString,返回下标从0开始,到4结束的字符串,不会改变原有数据。追加到key为‘name1’的数据后,并返回字符串总长度,如果key为‘name1’不存在,则新增。查看key为‘name’的key的过期时间,返回为-2时证明该key已过期,即不存在。插入一个key为'name',值为'apple'的数据,过期时间为15秒。获取key为'name'的数据。

2024-05-15 15:47:19 309

原创 Redis教程(三):Redis的五种基本数据类型

有序集合zSet,也叫sorted set,sorted set 增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列,还可以通过 score 的范围来获取元素的列表。类似于Java的TreeSet和HashMap的结合体。哈希Hash结构相当于Java语言的HashMap,内部实现结构上与JDK1.7的HashMap一致,底层通过数据+链表实现。集合Set相当于Java的HashSet,Redis 中的 set 类型是一种无序集合,集合中的元素没有先后顺序。

2024-05-15 15:43:44 222 1

原创 Redis教程(二):Redis在Linux环境下的安装

修改配置文件,redis配置文件在 /opt/soft/redis/redis-6.2.14/redis.conf,把daemonize yes改成daemonize no。,Redis默认安装在了 /usr/local/bin 目录下。上传到Linux的/opt/soft目录,使用以下命令解压。查看当前gcc的版本,7.3.1即代表环境升级成功。升级gcc的版本,中途遇到输入时直接选择yes。Linux安装基本环境gcc,安装命令。下载得到一个 tar.gz 压缩文件。启动客户端连接,测试连接是否正常。

2024-05-15 15:41:27 259

原创 Redis教程(一):Redis在Windows环境下的安装

修改配置文件 redis.windows-service.conf,可以配置端口、密码、修改访问IP权限。启动服务端,启动 redis-server.exe文件。启动客户端,启动 redis-cli.exe文件。下载ZIP文件,解压到本地。

2024-05-15 15:38:13 260

原创 MySQL创建索引报错 Specified key was too long;max key length is 1000 bytes.

MySQL对创建索引的大小有限制,一般索引键最大长度总和不能超过1000个字节。

2024-05-14 19:54:13 317

原创 Java整合MySQL8使用load data infile快速导入数据,不坑人的最详细教程

LOAD DATA INFILE是MySQL中的一个用于将数据从文件加载到表中的命令。它允许你从文本文件、CSV文件等导入数据到MySQL表中,非常适用于大量数据的批量导入。:LOAD DATA INFILE命令可以处理多种文件格式,如CSV、文本文件等,但是要求文件的格式必须与目标表的字段格式兼容。:相比其他方式,如使用INSERT语句逐行插入数据,通常更快,尤其是在处理大量数据时。这是因为它是一个原生的MySQL命令,可以利用MySQL的优化和并发处理能力。

2024-05-14 00:02:03 141

原创 Gradle报错Cause: zip END header not found,构建问题解决

构建报错:Cause: zip END header not foundFile>>setting>>Build,Execution,Deployment>>Gradle选择你本地的Gradke路径问题解决

2024-05-08 16:39:41 217

原创 Windows关闭“你要允许此应用对你的设备进行更改吗”

在 Windows 系统环境上,经常会遇到这样的弹窗," 你要允许此应用对你的设备进行更改吗 "

2024-04-30 11:18:08 113

原创 企业私服中使用Maven,标准的setting.xml文件

配置优先级从高到低:pom.xml > 本地 settings > 全局 settings如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。

2024-04-30 10:10:57 165

原创 IDEA2024版本控制台乱码怎么解决?

Setting>>Build,Execution,Deployment>>Runnr中的VM Options配置,这里默认是GB2312。在网上找了很多办法,修改了IDEA的vmoptions文件也没有用,最后发现原来是要修改这里。在使用最新版本的IDEA时,可能会遇到控制台输出乱码问题?我们把它改成使用 UTF-8 编码即可!

2024-04-30 08:32:49 428 1

原创 HTTP接口调用时报错 java.io.IOException: Connection reset by peer解决办法

在接口调用时,遇到如下报错:/:?/:?/:?/:?/:?/:?/:?/:?/:?/:?/:?/:?

2024-04-25 15:32:43 325 1

原创 Java飞行记录 Jfr 文件分析,JMC工具的安装和使用详解

JMC 可以读取 JFR 事件记录文件,并提供复杂的分析和视图,帮助你深入理解 JVM 的行为和性能表现。

2024-04-22 14:20:12 106

原创 Hibernate使用HQL的注意事项

HQL是Hibernate Query Language的缩写,它是为Hibernate框架设计的面向对象的查询语言。Hibernate是一个Java平台的对象关系映射(ORM)解决方案,它提供了一种将Java应用程序中的对象模型映射到关系数据库表结构的方法。使用Hibernate, 开发人员可以使用Java对象来表示和操作数据库中的数据,而不需要编写大量的SQL码。HQL的设计灵感来源于SQL,但与此同时,它允许开发人员用面向对象的方式来编写查询。

2024-04-07 17:41:03 53

原创 Spring的BeanFactory和FactoryBean有什么区别?

定义了ioc容器的最基本形式,并提供了ioc容器应遵守的的最基本的接口,也就是Spring ioc所遵守的最底层和最基本的编程规范,它只是个接口,并不是ioc容器的具体实现。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。再来说说。

2024-04-03 15:23:23 213

原创 分别使用TCP/UDP实现互相实时发送消息,接收消息功能

UDP(用户数据报协议)是一种简单的、无连接的、基于数据报的传输层协议。它是互联网协议套件中的一部分,与TCP协议并列,用于在网络上传输数据。无连接性:UDP是一种无连接的协议,通信双方在通信之前不需要建立连接。每个UDP数据包(也称为数据报)都是独立的,它们之间没有关联性,可以单独发送,也可以按照任意顺序发送。不可靠性:UDP不提供可靠的数据传输机制,它不使用序号、确认和重传等机制来确保数据的可靠传输。因此,UDP数据包在传输过程中可能会丢失、重复或者乱序,应用层需要自行处理这些问题。简单性。

2024-03-22 16:13:41 249

原创 BigDecimal类的使用,用于精确计算任意精度的数字

BigDecimal是 Java 中用于精确表示任意精度的十进制数的类。在很多情况下,使用基本数据类型(如double或float)进行浮点数计算可能会导致精度丢失或舍入错误。BigDecimal提供了一种更精确的解决方案,可以处理需要高精度计算的场景,比如财务应用或科学计算等。BigDecimalBigDecimal总的来说,BigDecimal类的作用是提供一种精确表示和计算十进制数的机制,以解决需要高精度计算的问题。

2024-03-21 15:55:49 117

原创 The service already exists!怎么解决,Windows怎么安装/卸载服务?

有时候,我们在Windows系统上安装服务时会遇到报错,

2024-03-14 11:48:26 336

原创 Gradle项目怎么引入另一个独立的Gradle构建结果,Gradle进阶操作教程

总的来说,Gradle 是一款功能强大、灵活且易于扩展的构建工具,广泛应用于各种类型的软件项目中,包括 Java、Android、Web 应用程序等。它的特点包括灵活的构建配置、丰富的插件生态系统和多项目构建支持,使得开发团队能够高效地管理和构建复杂的软件项目。3. 如果A项目要从本地引入 root 项目的构建结果,在subprojectA 项目的setting.gradle文件中添加,:Gradle 使用增量构建的方式,只重新构建发生变化的部分,可以加快构建速度。

2024-03-12 09:25:43 145

原创 Java阻塞队列,BlockingQueue常用Api介绍

在 Java 中,阻塞队列是一种特殊的队列数据结构,它具有阻塞操作的特性,即当队列为空时,获取元素的操作会被阻塞;当队列已满时,添加元素的操作也会被阻塞。Java 提供了包中的接口,以及其实现类,用于实现阻塞队列。这些阻塞队列都实现了接口,提供了诸如puttakeofferpoll等方法,可以实现阻塞的添加和获取元素操作。

2024-03-11 10:39:02 50

原创 Java项目使用pop命令报错 ERR wrong number of arguments for ‘spop‘ command的解决办法

在我们的Spring+Redis的项目中可能会遇到这种错误:导致这种问题的表象是我们代码中使用了Redis的pop命令。

2024-03-06 11:19:27 528

原创 Redis报错NOAUTH Authentication required怎么解决?

在使用redis-cli时,可能会遇到报错。

2024-03-06 10:43:41 1159

原创 达梦数据库修改字段为NOT NULL的SQL语句

2.修改字段CONTENTTYPE为 NOT NULL(非空)3. 修改字段为 NULL(允许空)

2024-03-04 11:43:23 623

原创 SpringBoot启动后自动执行功能,提供的各种Event事件顺序整理

Spring Boot的核心是简化Spring应用程序的开发和部署。它通过提供一组开箱即用的功能和约定大于配置的原则,大大简化了Spring应用程序的配置和开发过程。:Spring Boot提供了一个快速启动的引导器,可以轻松创建和运行一个基本的Spring应用程序,无需复杂的配置。:Spring Boot通过自动配置功能,根据类路径下的依赖、Bean的定义等信息,自动配置Spring应用程序的环境,大大减少了手动配置的工作量。

2024-03-01 10:00:46 188

原创 Spring启动后默认注入的ConfigurableEnvironment,可用于获取系统属性

Spring Boot在启动时会自动注入默认的ConfigurableEnvironment对象。ConfigurableEnvironment是Spring Framework中的接口,它代表了Spring应用程序的环境配置,包括配置属性、配置文件等信息。在Spring Boot应用程序启动时,Spring Boot会自动创建并配置一个ConfigurableEnvironment对象,该对象包含了应用程序的所有配置信息。

2024-03-01 09:26:55 237

原创 实现Spring的Ordered接口,控制Bean的初始化优先级最高

实现Spring框架中的Ordered接口可以控制对象的初始化顺序。Ordered接口定义了一个getOrder()方法,返回一个整数值,表示对象的顺序,数值越小,优先级越高,越先被初始化。通过实现Ordered接口,可以确保在有多个对象需要按顺序初始化时,它们的初始化顺序是可控的。

2024-02-29 15:37:53 461

原创 Idea报错Initialization script ‘C:\Users\XXX\AppData\Local\Temp\Test3_main__.gradle‘ line: 81解决方法

Idea启动项目报错:FAILURE: Build failed with an exception.* Where:Initialization script 'C:\Users\fudingwei\AppData\Local\Temp\Test3_main__.gradle' line: 81* What went wrong:Execution failed for task ':study:Test3.main()'.> The value for task ':study:Test3.mai

2024-02-29 11:32:52 666

空空如也

空空如也

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

TA关注的人

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