自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 问答 (1)
  • 收藏
  • 关注

原创 jdk下载与安装

Java基础安装jdk教程

2024-01-20 09:30:14 423

原创 利用vbscript进行PDM文件导出excle操作

pdm文档导出为excle文档

2023-05-24 15:30:54 341

原创 redis分布式限流

redis进行限流实现

2023-05-06 12:39:48 215

原创 最长递增的区间长度

最长递增区间长度

2022-08-23 18:20:50 573

原创 java8 lambda表达式和双冒号 :: 使用

lambda

2022-08-06 17:51:44 271

原创 docker部署tomcat容器,并外部访问

iptables开放端口、docker容器网关重置、Recv failure: Connection reset by peer

2022-07-01 19:28:22 1317

原创 centos7安装docker报错iptables v1.4.21: Couldn‘t load target `DOCKER-ISOLATION‘

最近在学习docker过程中,第一步docker启动,就遇到了问题,按照官网步骤安装完成后,进行启动,报错:iptables v1.4.21: Couldn’t load target `DOCKER-ISOLATION’,具体如下:刚开始,将防火墙进行关闭,确实能够启动但是总觉得,问题不在这里,经过查找发现,在centos7中,使用firewall代替了iptables,解决本次问题,还是将firewall关掉,启用iptables问题解决!记录一下,以便于日后学习...

2022-07-01 18:37:04 3526

原创 springboot 读取自定义属性

很多时候,我们开发当中,需要通过配置自己的属性信息来满足不同环境下的应用部署,因此需要springboot能够读取我们自定义的属性,常用的读取自定义属性有@Value和@ConfigurationProperties,下面分别做简单的介绍1、@Value此标签是单个配置加载的数据,比如我们在配置文件中指定了属性name=‘java’ 在需要使用的组件中,设定@Value("${name}") 注解在相应的字段上,springboot就会自动加载。当然,@Value还可以使用Spel表达是,注入值使用@V

2022-02-15 20:44:39 570

原创 springboot auto-configuration 自动装配功能

在springboot官网给出了如下介绍:Spring Boot auto-configuration attempts to automatically configure your Spring application based on the jar dependencies that you have added. For example, if HSQLDB is on your classpath, and you have not manually configured any databa

2022-02-14 09:43:24 953

原创 springboot debug模式启动

我们都知道,在idea或者eclipse等IDE工具中,都有debug模式启动,但是这种启动是针对我们自己开发的代码的一种开发运行模式,而springboot提供的debug启动模式是对springboot框架信息打印的模式,需要在配置文件中配置debug=true增加后,我们再次启动springboot项目,会发现在控制台打印信息增加了许多截图中的positive matches下边打印的是springboot启动过程中,自动配置生效的组件,可以看到有aop自动配置,cache缓存自动配置等信息

2022-02-14 09:31:30 8795

原创 redis搭建集群

redis集群,顾名思义的就是由多台redis服务器,作为一个整体,为系统进行服务,redis集群是一个无中心化的一种服务模式,在redis集群中,由多组主从模式的简单集群共同组件成一个大的redis集群,集群中共同维护16384个slot(插槽),相对比而言,redis集群比主从复制,哨兵模式增加了写的能力,容错性能更强。下边开始搭建1、准备配置文件redis6379.conf、redis6380.conf、redis6381.conf、redis6389.conf、redis6390.conf、red

2022-02-13 10:23:45 1371

原创 redis搭建哨兵模式

redis哨兵模式,是指针对主从复制模式的一种监控状态的模式,在redis主从模式中,若主机发生故障而导致宕机时候,需要人为干预,重启主机服务,这样是很不方便的,而哨兵则能很好的解决这个问题,哨兵可以对主从复制模式的主机进行监控,如果发生故障,则可以通过内部机制将其中的一个从机作为主机继续进行服务,选举主机遵从以下原则:redis配置文件中参数:replica-priority 100(优先级,数字越低,优先级越高)从机的数据越符合主机数据,优先级越高redis启动的服务,会随机生成一个40位的id

2022-02-12 20:06:49 2213

原创 springboot @Configuration注解

@Configuration 主要是用于springboot加载配置信息的一个类,它本身也是springboot的一个组件,下边通过代码,点击进去,可以看到它的源码:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Configuration { /** * Explicitly specify the name of the Spring b

2022-02-12 17:18:14 1331

原创 redis主从复制

什么是主从复制主机数据更新后,根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slaver以读为主。可以使用读写分离,性能扩展,容灾快速恢复1、复制三个配置文件出来,分别为redis-63791.conf、redis-63792.conf、redis-63793.conf内容为:引入原来的配置文件include ./redis.conf#设置pid文件路径pidfile ./redis_63791.pid#设置启动端口号,三台端口号不同port 63

2022-02-11 22:15:01 469

原创 springcloud服务提供者整合mybatis报错Invalid bound statement (not found)

在搭建springcloud集群过程中,创建服务提供者节点,由于第一个节点是手动创建的,运行很正常,紧接着创建第二个和第三个服务提供者节点的时候,直接复制粘贴,修改配置文件的,结果悲剧了怎么也找不到mapper中的方法方法、路径、配置,都没有问题,可就是报错,经过一番查找,问题就出在了我复制的路径上,我们到本地看一下实际的路径发现,文件夹的名字就叫做mybatis.mapper,而不是分层的mybatis/mapper猜想可能是因为在idea中直接复制分层的文件夹会产生认知上的错误吧,修改分

2022-02-10 15:43:08 418

原创 redis模拟秒杀解决库存剩余问题(三)

在模拟秒杀第二篇中,我们使用了redis事务,并用watch进行监控,虽然将超卖问题解决了,但是引出了一个新的问题——库存剩余。其中原因就是watch的乐观锁导致的,版本不一致,不执行事务。现在使用另外一个方案(即LUA脚本)进行解决。LUA脚本是一个嵌入式的脚本,不能独立运行,需要其他的程序进行调用,本身是用C语言进行编写的,调用redis执行具有原子性。在秒杀过程中,将redis的库存判断,秒杀过程,全部交给脚本实现,java代码中,只做调用实现代码如下:import com.lixl.red

2022-02-10 13:37:56 1117 2

原创 redis模拟秒杀解决超卖问题(二)

在第一次的版本中,使用redis模拟秒杀,最终结果,单个线程可以执行,使用了阿帕奇的ab工具,进行了压力测试后,出现了超卖问题,本代码中,针对此问题进行解决。在redis中,提供了事务的概念,redis的事务在执行过程中,不会被打断,multi开启事务,在此之后的才做将被添加至操作队列中,如图添加完成后,可以使用exec进行执行如果想放弃,则可以使用discard取消执行的事务要想完成秒杀超卖的问题,当然还有一个非常重要的点,redis的watch方法,它是一个乐观锁的命令,会未监控的key增

2022-02-10 12:23:26 1480

原创 使用redis商品秒杀模拟(一)

前边整合了springboot使用redis,下边在此基础上,进行秒杀案例的模拟。案例中,通过设置商品数量,以及秒杀成功用户,进行实现。随机生成用户id工具类import java.util.Random;/** * 简单的使用random类生成数字,作为用户id * @author lixl * @description * @date 2022/2/10 */public class RandomUtils { private static Random random =

2022-02-10 10:35:43 921

原创 springboot+redis+commons-pool2整合

pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/x

2022-02-09 11:41:08 1617

原创 springboot整合redis

springboot 依赖配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.

2022-02-09 10:28:01 135

原创 Redis zset操作

Redis有序集合zset与普通的set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每一个成员都关联了一个评分(score) ,这个评分被用来按照最低分到最高分的方式排序集合中的成员,集合的成员是唯一的,但是评分可以重复因为元素是有序的,所以你可以很快的根据评分或者次序来获取一个范围的元素访问有序集合中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表底层数据结构zadd key score1 value1 score2 value2 … 可以添加多个元素到

2022-02-04 22:27:05 1433

原创 Redis hash类型操作

Redis hash是一个键值对集合Redis hash是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象,类似java中的Map<String,Object>,底层使用的存储为ziplist和hashtable两种,当hash中的数据少的时候,使用ziplist,多了使用hashtablehset key field value 添加数据hget key field 获取数据hmset field1 value1 field2 value2

2022-02-04 22:26:19 869

原创 redis 中的set操作相关

基础知识redis set对外提供的功能与list相同,特殊之处,set可以自动排重,set是String类型的无序集合,它底层是一个value为null的hash表,所以添加、删除、查找的时间复杂度为O(1),它是一个dict字典表,字典表是由hash表实现的,java中的hashSet内部也是一个HashMap,只不过所有的value都指向同一个对象,Redis的set结构也是一样的,它的内部也使用了hash结构,所有的value都指向同一个内部值操作命令sadd key value1 value

2022-02-03 18:50:06 665

原创 Redis的list相关操作介绍

基础知识list是一种单键多值的操作,列表是简单的字符串列表,可以按照插入循序排序,可以在元素头部插入,也可以在元素尾部插入,底层是双向连表实现,两端操作效率很高,中间操作效率低list底层的数据结构是一个quickList(快速连表),首先列表中元素较少的情况下,申请一块连续的内存,这个结构是ziplist(压缩连表),随着数据的增加,则会形成多个ziplist,并由多个ziplist形成quicklist,多个ziplist之间是双向连表,使用多个ziplist的好处是,既能满足快速的插入和删除,又

2022-02-03 18:48:58 432

原创 redis字符串String相关操作

基础知识介绍String 类型是一个二进制安全的类型 ,意味着Redis的String可以保函任何数据,比如jpg图片,或者序列化对象String类型是Redis最基本的数据类型,一个Redis字符串Value最多是512M,String的数据结构是简单的动态字符串,是可以修改的字符串,内部结构实现上,类似java的arraylist,采用预分配冗余空间的方式来减少内存的频繁分配,在字符串存储时候,一般申请的空间都大于实际长度,如果需要扩容的时候,在小于1M的时候,扩容为成倍扩容,超过1M时候,最多扩

2022-02-03 18:42:58 975

原创 redis的key关键字相关使用介绍

keys * 查看当前库中所有的keyexists key 判断某个key是否存在type key 查看key是什么数据类型del key 删除指定的key数据(直接删除数据)unlink key 根据value选择非阻塞删除(执行命令的时候,并没有真正删除,在后续中,再真正的删除)expire key 设置数据的有效时间 以秒为单位ttl key 查看key的过期时间 -1 表示永不过期 -2 表示已过期dbsize 查看当前库中有多少数量的keyflushdb 清空当前库中的所有内容f

2022-02-03 18:41:19 440

原创 redis基础知识储备

Redis概述redis是一个开源的key-value存储系统和Memcached类似,它支持存储的value类型相对较多redis支持的数据类型:字符串(String)、列表(list)、集合(set)、哈希结构(hash)、有序集合(zset),在redis6新版本中,添加了对Bitmaps、setbit、HyperLogLog类型的支持这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的在此基础上,Redis支持各种

2022-02-03 16:59:33 396

原创 java实现斐波那契数列

如图,可以看到斐波拉契数列是一组有规律的数列,第一项和第二项都是1,从第三项开始,都是前两项的和,以此为规律,向后延伸。/** * 斐波拉契数列实现 * 斐波拉契数列是一组有序序列,在第一个和第二个元素都为1 * 往后的数据,都等于前两个数据相加的和 */public class Fb { /** * 利用递归方式实现 * @param n * @return */ public int fb1(int n ){ if.

2022-02-03 11:15:00 500

原创 八皇后问题java实现

问题描述八皇后是基于国际象棋,进行一个小游戏:在一个8 * 8的棋盘上,放置8个皇后(就是8个位置棋子),每个皇后与其他皇后不能在同一行和同一列或者是同一个斜线上,需要寻找摆放位置。问题分析1、需要使用一个二维数据array[][] 分别代表皇后放置在第几行,第几列。2、皇后放置不能越界3、判断皇后的位置不与其他皇后冲突,即每个皇后坐标不能有相同的横坐标或者是纵坐标,斜线上判断横坐标与横坐标相减绝对值不能等于纵坐标与纵坐标相减的绝对值。4、从第一行第一列开始排列,利用回溯的思想,进行寻找代码实

2022-02-03 10:17:07 2125

原创 springboot 依赖管理

在springboot项目开发当中,最大的感受就是:pom文件相对于ssm项目,简单了许多,在我们基础demo中,我们只导入了两个starter即<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RE

2022-02-02 22:03:46 792

原创 springboot @RestController注解

点击进入注解类源码,可以看到@RestController注解是由@Controller和@ResponseBody两个注解的合成注解,由此可知,在@RestController注解的controller类上,都是rest类型的访问接口,可以直接向客户端返回数据,也是springboot的主要使用注解...

2022-02-02 21:47:40 466

原创 rk字符串匹配算法java实现

/** * rk字符串匹配算法,主要引入了hash的概念, * 利用子串的hash值依次对比主串相应长度的子串hash值 * 并对hash值相同的子串进行匹配对比 */public class RKSearch { /** * rk算法入口 * @param t 主字符串 * @param p 子字符串 * @return */ public int rk(String t,String p){ // 字符串非法.

2022-02-02 15:13:40 257

原创 字符串bf匹配算法java实现

/** * bf字符串寻找算法 * 算法思想,使用子串对主串进行挨个匹配,如果匹配不正确,则主串向后加1,继续匹配 * 将待匹配的主串和子串做成字符数组,方便匹配使用 */public class BfSearch { /** * 使用bf算法,在主串t中取匹配子串p * @param t 主串 * @param p 子串 * @return */ public int bf(String t,String p){ .

2022-02-02 14:21:04 498

原创 虚拟机设置centos7静态ip

1、设置虚拟机网络适配器选中桥接模式2、启动虚拟机,编辑网络配置文件编辑网络配置文件vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 (有的名称可能不一样)TYPE=“Ethernet”BOOTPROTO=“static”DEFROUTE=“yes”PEERDNS=“yes”PEERROUTES=“yes”IPV4_FAILURE_FATAL=“no”IPV6INIT=“yes”IPV6_AUTOCONF=“yes”

2022-02-02 10:33:12 2110

原创 深度优先,检索图中的路线

深度优先是按照一个节点,一直递归向下寻找,找到或者找不到时终止。import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.List;/** * 邻接表方式,存储无向图 * 使用连表的数组结构进行图信息的保存 * 数组的下标代表的是图顶点本身,下标位置的连表,分别代表相连接的顶点信息 */public class UndiGraph { /**

2022-01-31 12:21:36 556

原创 java实现广度优先算法

实现思路广度优先方式,是一种地毯式搜索,层层递进的方式,即从开始节点依次遍历相邻节点,层层递进代码实现基于之前图的数据结构,实现广度优先算法import java.util.*;/** * 邻接表方式,存储无向图 * 使用连表的数组结构进行图信息的保存 * 数组的下标代表的是图顶点本身,下标位置的连表,分别代表相连接的顶点信息 */public class UndiGraph { /** * 标识图中顶点的个数 */ private int po

2022-01-31 10:16:18 1895

原创 图数据类型存储方式以及java代码实现

概念和术语图形数据结构与一般数据结构不同,它必须要反映数据所对应元素之间的几何关系和拓扑关系对数据结构的要求:(1)具有尽可能完善的形状及图形描述能力;(2)具有对图形及形状信息进行各种基本操作的能力;(3)具有较小的存贮空间和较快的处理速度。对图形信息的主要操作包括:性提货图形的生成、变换、修改、输出等。图形数据结构通常是指由若干个图形数据元素按一定关系所组成的有序集,一般称为表。如果这些数据元素之间具有邻接关系,成为线性表,否则称为非线性表。线性表是由若干个节点组成的有序组合。在具体结构

2022-01-31 10:12:09 556

原创 centos7 安装redis

一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v)如果没有安装,会报错未找到命令。执行以下命令进行安装[cs3@localhost Desktop]$ yum install -y gcc看到一下图片,即代表安装完成。安装过程中,遇到一个小的提示:You need to be root to perform this command需要使用root用户才可以,使用su切换用户。二、下载并解压安装包redis安装包可以到官网选择相

2022-01-30 13:16:19 605

原创 堆排序java实现

对堆数据结构有疑问的伙伴,可以看一下我的另一篇文章,对堆结构有介绍https://blog.csdn.net/weixin_38879931/article/details/122742064?spm=1001.2014.3001.5501import java.util.Arrays;/** * 堆排序java实现 * 实现思想: * 1、将待排序的数组进行堆化处理(本实例使用大顶堆) * 2、循环交换第一个和最后一个元素,交换后再次堆化,重复操作 * 在本大顶实例中,第一个元素

2022-01-30 10:46:50 365

原创 springboot Externalized Configuration

根据官网给出的信息Spring Boot lets you externalize your configuration so that you can work with the same application code in different environments. You can use a variety of external configuration sources, include Java properties files, YAML files, environment var

2022-01-29 17:49:37 271

空空如也

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

TA关注的人

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