自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

拾信

752

  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis知识点集合

2021-07-28 11:08:48 203

原创 Redis从安装到(主从、哨兵、集群)部署到整合项目以及一些常用功能介绍

目录安装配置,数据类型,整合,Redis存储Java对象,发布(pub)和订阅(sub),持久化,主从复制(读写分离)Master :Slave,缓存过期处理和内存淘汰策略,哨兵机制,集群搭建,缓存穿透和缓存雪崩,multiGet和pipeline批量查询优化,分布式锁......

2021-07-11 05:48:10 336 1

原创 nginx配置文件解析

nginx.conf文件配置user root;worker_processes 2;# debug info notice warn error crit#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid#工作模式以及连接数配置,指令块events { #默认使用epoll,对于Linux来

2021-07-02 17:37:55 656 1

原创 nginx定时任务每天定时分割日志

1.安装定时任务插件yum install crontabs2.创建.sh文件,记录这个文件名,在定时任务需要用到#!/bin/bash#定义存放nginx日志文件的目录LOG_PATH="/var/log/nginx/"#定义时间格式RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)#nginx.pid内存放了nginx进程的pid,用于最后一句PID=/var/run/nginx/nginx.pid#下面两句:文件名字修

2021-07-02 09:36:51 635

原创 Mybatis的xml实用的一些技巧

1.结果映射技巧 <resultMap id="myMap" type="com.shixin.vo.MyVO"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="type" property="type" /> <collection proper

2021-06-25 13:55:07 575

原创 log4j整合 - SpringBoot ,日志监控

1.pom依赖的剔除和引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <!--排除自带的日志jar包,整合其他日志--> <exclusions>

2021-06-23 16:16:01 275

原创 Swagger2 - 3.0集成SpringBoot

Swaggers2是一款能够自动生成api文档的工具,非常好用,极大减小工作量。1.引入pom.xml依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</versio

2021-06-23 09:27:11 1138

原创 mybatis-plus-genetrator逆向工程生成工具+分页插件pageHelper + 集成SpringBoot

github地址:https://github.com/shixin752/mybatis-plus-generator

2021-06-20 03:54:10 719

原创 7种事务传播行为案例详解

1.什么是事务传播行为?指的是当一个事务方法(A)被另一个事务方法(B)调用时候,这个事务方法(A)应该如何运行。2.事务传播行为有哪些种类?文字版: 事务传播行为类型 说明 1 PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 2 PROP..

2021-06-18 10:29:11 1108 2

原创 定时任务:Timer,@Scheduled,Quartz,xxl-job

一.Timer二.Quartz记录两种Java定时器。一.Timer1.需要关注两个类,Timer和TimerTask TimerTask:任务内容 Timer:里面有调度TimerTask执行的方法2.适用于比较简单的计时任务(简单任务下或许比Quartz用起来更方便,不用引入额外的包,逻辑也没有那么复杂)3.两个类均位于java.util包下4.如果出现错误,程序会直接崩溃,而不会捕获异常进行异常处理5.代码package com.s...

2021-05-14 09:53:02 2125 4

原创 Jar包制作exe文件,Jar包制作可导出运行的exe安装文件

工具分享:exe4j,Inno Setup1.Jar包打包成exe文件2.exe安装包制成

2021-05-10 23:20:14 1822 2

原创 JWT实现单点登录(SSO)

相关技术名词:SSO、JWT、Redis、AOP、RSA、MD5 - salt

2021-04-25 17:23:37 6756

原创 创建以及删除索引大全

创建普通索引 ALTER TABLE table_name ADD INDEX index_name (`column_name`);创建组合索引 ALTER TABLE table_name ADD INDEX index_name(`column_name1`,‘column_name2’);创建唯一索引 CREATE UNIQUE INDEX index_name ON table_name (column_name);创建主键索引 ALTER TABLE ta...

2021-02-20 16:59:22 118

原创 JDK8函数式编程stream()使用方法

/** * forEach() : 循环 ; filter() : 过滤 ; distinct() : 去重 * sorted() : 排序,不传参数使用默认排序 * map() : 对元素进行操作 * collect() : 生成List(一般先经过map处理后生成List) * * @author shixin * @date 2021/2/2 9:38 */public class Test { public static String[] arrays = new .

2021-02-02 10:37:32 214

原创 声明式HTTP客户端-Feign

囊括feign的大部分知识点

2021-01-14 22:18:50 652 2

原创 Ribbon介绍 (配置文件配置篇)

关于Ribbon比较全面的介绍

2021-01-12 23:01:53 4071 2

原创 Ribbon介绍 (Java代码配置篇)

关于Ribbon比较全面的介绍

2021-01-12 22:58:57 2445

原创 服务发现组件Nacos

目录一.了解概念二.应用场景三.Nacos(Nacos文档)1.什么是Nacos2.搭建Nacos3.将应用注册到Nacos4.测试是否可以微服务之间访问5.实际场景应用6.Nacos服务发现的领域模型7.元数据一.了解概念服务提供者:服务的被调用方(为其他微服务提供接口的微服务) Server服务消费者:服务的调用方(调用其他微服务接口的微服务) Client这两者的界限并不是特别明显,服务提供者也可能在某个场景是服务消费者。二.应用场景.

2020-12-29 22:27:20 834

原创 Spring Cloud / Spring Cloud alibaba 基础 学习笔记

todo

2020-12-28 21:05:10 545

原创 nginx(负载均衡,反向代理)+springBoot(初次使用nginx安装配置笔记)

一 、前言网上一直说nginx很好用,也阅读过一些有关的文章。它最重要的功能是负载均衡和反向代理。在没有接触过“负载均衡”以及“反向代理”之前,一直觉得这两个东西遥不可及。随着越来越深入的了解,也有了自己一些浅显的见解。1.负载均衡在初入项目开发的时候,一般不会接触到负载均衡这个名词。我们只做一些比较小的,或者说是访问量不大的程序。例如个人博客,电商网站,校园内便捷应用(二手交易,校园商铺...)等这些练手的网站。只需要创建一个项目,开发完成之后发布到linux上就已经觉得大功告成了

2020-12-05 00:37:13 1061

原创 Linux环境变量配置

1./etc/profile (配置环境变量)编辑此文件可以配置环境变量。例如:nginx启动文件路径 /usr/local/ngix/sbin,此时直接通过nginx命令会报command not found错误①vim /etc/progile 编辑文件,最后一行加上export PATH= /usr/local/ngix/sbin(就是那个执行文件的目录)②source /etc/profile使配置立即生效...

2020-11-27 23:59:49 159

原创 SpringBoot+maven本地打包发布到Linux服务器

1.clean2.compile3.package4.第三部完成后,会在项目的target目录下生成jar包5.通过软件将jar包传输到linux,目录随便6.在有jdk环境的前提下(centos自带openjdk),没有的话先装好环境,使用命令 java -jar xxx.jar 可以启动,但是这种方式启动之后不能进行任何操作。7.使用 nohup java -jar xxx.jar > nohup.out 2&1>& 命令可以让程序在后台.

2020-11-20 00:59:20 710

原创 SpringBoot项目使用shell自动拉取代码并部署笔记

#!/bin/bash#项目运行端口port=8084#打包分支branch=master#项目路径统一前缀(全路径)prefix=/data/sbproject#项目根路径projectrootdir=${prefix}/BlogMybatis#生成的jar包的名称以及路径,保证sh文件到处都可运行,使用全路径newjarfiledir=${prefix}/jarnewjarfilename=${newjarfiledir}/blogproject.jar#旧jar包不删除,移.

2020-11-19 19:08:05 692

原创 Linux学习笔记

一.shell 脚本查找特定文件语法:find path [option] params //path选填1.查找当前文件夹下的文件find -name "e*" 2.查找上一级文件夹下的文件3.不想退出当前位置,查找某个不在当前文件夹下的文件,使用全局搜索...

2020-11-19 09:24:24 92

原创 乐观锁,悲观锁,共享锁,排它锁,表锁,行锁

乐观锁与悲观锁是一种思想,而不是一种实现。乐观锁适用于读操作多的场景,它总认为不会产生并发问题,因此每次读数据的时候总认为不会有别的线程对数据进行修改,所以每次都不会上锁,但是在更新的时候会同时记录当前version值,用来判断在此期间有没有其他线程对数据进行修改。关键代码:update table set x=x+1, version=version+1 where id=#{id} and version=#{version}; 需要手动在数据库中增加字段version,表示被修改的次数,每次

2020-11-12 20:50:29 122

原创 自定义通用接口返回类

一. 定义枚举类ResultCodeEnum(可以在返回类类内定义,也可以额外定义,个人喜欢分开定义)package com.shixin.utils.enums;import lombok.AllArgsConstructor;import lombok.NoArgsConstructor;/** * @author shixin * @date 2020/11/11 15:16 */@AllArgsConstructor@NoArgsConstructorpublic en

2020-11-12 11:10:30 984 3

原创 Oracle、Mysql中数据存在则更新,不存在则插入方法

Oracle中使用merge into语句:数据存在则更新,不存在则插入merge into TEST1 t1using DUALon ( t1.ID= 5)when matched then update set t1.NAME = 'xxx'when not matched then insert (id,NAME) values (5,'xxx' );mysql:数据存在则更新,不存在则插入INSERT INTO test(id,name) VALU.

2020-11-10 15:05:17 1090

原创 mysql使用B+-Tree作为索引数据结构的原因

Mysql使用的是B+-Tree,时间复杂度是O(log n)Hash索引的复杂度是O(1),如果是查找一个数的话,使用Hash是很好的选择,但是对于范围查询,模糊查询都不支持,并且由于Hash函数的随机性,通常其对内存的访问也是随机的,会造成频繁的IO,然而在数据库性能调优方面,有一个点就是要减少不必要的IO,然而Mysql并没有放弃这种快速搜索等值的查询方式,而是根据数据库访问频率和模式自动的为数据建立哈希索引,称之为自适应哈希索引。再说说二叉树,如果左子树不为空,则左子树上所有节点均小于根节点

2020-11-09 20:03:19 156

原创 MyBatis使用generator插件,自动生成实体类、Dao层、Mapper文件

目录一.在配置文件下配置扫描所有配置文件以及引入插件jar包二.创建generatorConfig.xml文件,这里有些地方需要根据具体项目改三.自动生成(自动生成之后,在dao层的Mapper文件上添加@Mapper注解,注册成为bean让spring管理)这个插件真的是太方便了,点击一下即可自动生成...一.在配置文件下配置扫描所有配置文件以及引入插件jar包<build> <plugins> <plugin

2020-11-08 19:15:18 628 1

原创 Linux部署Mysql8.0记录(安装,权限分配,远程连接,常用命令)

Mysql默认yum只能安装mysql 5.1,可以配置指定安装,或者通过官网下载tar.gz到linux。1.查看是否有安装过mysql服务#yum list installed MySQL*2.查看有没有安装包#rpm -qa | grep mysql*3.安装mysql客户端#yum -y install mysql4.安装mysql服务端#yum-yinstall mysql-server mysql-devel5.启动mysql#servi...

2020-11-08 01:01:25 584

原创 数据库事务四大特性(ACID),四种隔离级别

事务四大特性和隔离级别有太多东西要学了......分开记录比较好......一.数据库事务的四大特性1.原子性(Atomicity)(数据库的操作):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。这个刚好最近有类似的业务用到了这个性质。(这个性质其实是很常见的)业务:一个用户可以拥有一个自定义的属性,可以自定义多条,但是这个自定义数据的量不是特别大,用户可以自行增加或者删除自定义属性的条数,也可以修改里面的内容。如果是想在不删除用户原有数据下,判断增加删除修改操作还是比较麻

2020-10-30 15:07:00 589 2

原创 如何设计一个关系型数据库(锁,索引)

目录一.为什么要使用索引?二.什么样的信息能成为索引?三.索引的数据结构?关于锁1.MyISAM和InnoDB关于锁方面的区别是什么?2.数据库事务的四大特性3.事务隔离级别以及各级别下的并发访问问题4.InoDB可重复读隔离级别下如何避免幻读?5.RC、RR级别下的InnoDB的非阻塞读如何实现?数据库最终的是存储。所以首要的是一个存储模块(文件系统),可以存在在机械硬盘或者是固态硬盘,光有存储不行,得需要一个程序实例组织这些数据才能使用。所以大方向下分为存储和程序

2020-10-26 23:25:05 501

原创 微信公众号实现点击显示答案效果

利用svg的图像文件格式来实现点击之后展示文字或者图片效果。一.打开微信公众号新建图文(或是编辑已有图文)①右键 → 检查 (编辑区域右键功能被覆盖了,找个空白的地方右键或者直接按F12进入开发者模式)②鼠标点击右边的代码区域,随便找个地方点,再按Crtl+F,输入文字(文字可能会被分割)如果操作区域在左边,Ctrl+F的效果是查找左边的内容,现在要做的是找到对应的代码区域,所以在右边操作 如果是顺着标签找非常麻烦,太多层级关系,直接全局搜索跟方便快捷 如图,文字可能会被分割,所以输入的

2020-10-25 03:09:11 15677

原创 定位并优化慢查询sql

1.根据慢日志定位查询1.show VARIABLES like '%QUERY%';查看系统慢日志等其他系统功能信息参数解析long_query_time:超时记录时间slow_query_log_file:慢日志位置2.show status like '%slow_queries%';查看慢日志中包含的慢查询sql语句条数3.set global slow_query_log = on;将状态设置为 on4.set GLOBAL long_query_ti

2020-10-22 01:03:47 491

原创 计算机网络

一、OSI开放式互联参考模型1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用层二、TCP/IP参考模型1.应用层 2.传输层 3.网络层 4.数据链路层三、TCP三次握手ACK:确认序号标志SYN:同步序号标志FIN:释放连接握手是为了建立连接,可以使用wireshark抓包查看建立连接发送的包的类型以及对应值。第一次握手 Client发送SYN包(假设syn=x)到服务器,并且进入SYN_SEND状态,等待服务器确认收到。 第二.

2020-10-21 01:32:55 213 2

原创 Git使用记录

1.账号、邮箱注册git config --global user.name "user.name"git config --global user.email "123456789@qq.com"2.创建秘钥ssh-keygen -t rsa -C "123456789@qq.com"根据显示的秘钥生成路径,进入打开(以txt打开)并复制idb_rsa.pub内的内容到github个人设置的ssh key3.开始本地上传找到待上传项目根目录或者新建目录,右键点击git bash

2020-10-18 14:40:23 86

原创 HashMap中存值和取值顺序问题

今天实现一个需求:Map<String,List> map —— HashMap里存储数据库中查出来的值取出List strList —— ArrayList遍历List str,根据每一个List值来查询List objList将<str,objList>存入map在检查了数据获取以及前端数据获取都没有错误的情况下,出现了map里key值乱序问题(第一个put的数据变成了map中最后一个数据。解决方案:将HashMap 改成 LinkedHashMap(Linke

2020-10-11 23:24:53 2100

原创 问题记录(2020年九月)

9.21.git中使用https和ssh的区别使用SSH clone项目,必须是项目的管理员或者是拥有者,并且需要配置SSH Key。也就是说,使用SSH时服务器无法提供匿名访问,clone之前必须先认证,把本地的公钥上传到GitHub账号的SSH Key列表上。如果是使用HTTP协议,在拉取的时候需要输入账号密码进行验证,SSH则不用。...

2020-09-23 09:21:51 291

原创 Java有规则的提取文件内信息(key:value)

需求:找到每个文件下以conf结尾的文件内的server-name对应的值(包括文件夹下的文件夹里以conf结尾的文件),注释掉的不用#可以举一反三,最主要的是提取文件内有规律的数据。package com;import java.io.*;/** * Created by PJB on 2020/9/2. */public class Bianli { public static String filename = ""; public static void ma

2020-09-03 01:10:40 888

原创 Java程序打包时出现的一些问题以及解决方案

一、程序打包网上介绍有两种方式。第一种是打包成JAR file注意事项:第四步的设置可能会出现warning,原因是程序里存在有warning的语句,想要解决的话可以想办法把程序中的warning去掉。第二种是打包成Runnable JAR file至于两种打包方法的区别,参见:打包中Runnable JAR file与JAR file的区别二、无法打开.jar...

2019-06-25 13:43:42 3278

谷歌浏览器JSON格式化插件

谷歌浏览加载此插件即可,不用其他操作,自动格式化json

2020-12-29

SpringBoot+Mybatis.zip

SpringBoot+Mybatis项目整合,非常精简。

2020-11-08

SSM框架实现注册登录功能

使用Maven管理项目,SSM框架实现最最简单的注册登录功能,博客有有关的搭建流程,提供给大家相互学习!

2019-03-30

空空如也

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

TA关注的人

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