- 博客(32)
- 收藏
- 关注
原创 环形队列
//front 就指向队列的第一个元素, arr[front] 就是队列的第一个元素 初始为0private int front; //rear 指向队列的最后一个元素的后一个位置 初始为0//因为希望空出一个空间做为约定区分判空和判满 private int rear; maxSize = 7;//实际数组长度 6环形队列的关键是判断队列为空,还是为满。当rear追上front时,队列为满时,当head追上tail时,队列为空。但如何知道谁追上谁。还需要一些辅助的手段来判断.如何判断
2021-08-28 19:21:09
188
原创 MySQL高级
一、索引可以简单理解为排好序的快速查找数据结构1、MySQL索引类型主键索引 Primary keyInnodb中又叫聚簇索引,InnoDB存储引擎的表会存在主键(唯一非null)如果建表的时候没有指定主键,则会使用第一非空的唯一索引作为聚集索引,否则InnoDB会自动帮你创建一个不可见的、长度为6字节的row_id用来作为聚集索引。单列索引:索引中只包含一个列。组合索引:在多个字段上建立的索引,只有在查询条件中顺序的使用了这些索引,索引才有效果。使用组合索引遵循最左前缀原则。
2021-08-22 16:34:45
139
原创 MySQL基础篇
MySQL基础篇常用函数 命令条件查询排序查询分组查询连接查询子查询分页查询联合查询INSERTUPDATEDELETEDDL约束自增长列 执行顺序SELECT 查询列表 7FROM 表 1【JOIN TYPE JOIN 表b 2ON 连接条件 3WHERE 筛选条件 4GROUP BY 分组字段 5HAVING 分组后筛选 6ORDER BY 排序的字段 8】LIMIT OFFSET,SIZE; 9常用函数 命令show databases; 查
2021-08-21 16:32:35
240
原创 谷粒商城项目总结--Token解决订单接口幂等性
生成订单时生成防重令牌//5.防重令牌 String token = UUID.randomUUID().toString().replace("-", ""); //给页面一份 confirmVo.setOrderToken(token); //给REDIS一份redisTemplate.opsForValue().set(OrderConstant.USER_ORDER_TOKEN_PREFIX + memberRespVo.get.
2021-08-12 15:36:00
426
原创 谷粒商城项目总结--RabbitMq
RabbitMq一、RabbitMQ概念二、RabbitMQ运行机制三、Docker安装RabbitMQ四、RabbitMQ整合五、RabbitMQ消息确认机制-可靠抵达六、RabbitMQ延时队列(实现定时任务)七、如何保证消息可靠性1、消息丢失2、消息重复3、消息积压一、RabbitMQ概念RabbitMQ简介: RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。核心概念Message消息,消息是不具名的,
2021-08-12 15:17:59
665
原创 谷粒商城项目总结--Feign远程调用和异步情况出现的问题
FeignFeign远程调用丢失请求头问题Feign异步情况丢失上下文问题Feign远程调用丢失请求头问题@Configurationpublic class MallFeignConfig { @Bean("requestInterceptor") public RequestInterceptor requestInterceptor(){ return new RequestInterceptor() { @Override
2021-08-11 16:27:02
403
原创 谷粒商城项目总结--SpringSession解决分布式Session
参考官方文档核心原理1.导入依赖 <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>2.配置//使用redis做sessionspring.s
2021-08-11 16:04:32
261
原创 谷粒商城项目总结--MD5&MD5盐值加密
• MD5• Message Digest algorithm 5,信息摘要算法• 压缩性:任意长度的数据,算出的MD5值长度都是固定的。• 容易计算:从原数据计算出MD5值很容易。• 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。• 强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。• 不可逆• 加盐: • 通过生成随机数与MD5生成字符串进行组合 • 数据库同时存储MD5值与salt值。验证正确性时使用salt进行MD5即可.
2021-08-11 15:46:03
280
原创 谷粒商城项目总结--异常机制
public class PhoneExsitException extends RuntimeException { public PhoneExsitException() { super("手机号已存在"); }} public void checkUsernameUnique(String username) throws UsernameExsitException { Integer count = baseMapper.selectCo
2021-08-11 15:30:34
96
原创 谷粒商城项目总结--异步 线程池
异步 线程池一、线程回顾1、初始化线程的 4 种方式2、线程池的七大参数3、运行流程:4、开发中为什么使用线程池二、CompletableFuture 异步编排1、创建异步对象2、计算完成时回调方法3、handle 方法4、线程串行化方法5、两任务组合 - 都要完成6、两任务组合 - 一个完成7、多任务组合三、配置一、线程回顾1、初始化线程的 4 种方式1、继承 Thread2、实现 Runnable 接口3、实现 Callable 接口 + FutureTask(可以拿到返回结果,可以处理异常
2021-08-11 15:13:35
500
原创 谷粒商城项目总结--缓存
缓存一、缓存二、缓存失效问题1、缓存穿透2、缓存雪崩3、缓存击穿三、缓存数据一致性四、Spring Cache一、缓存为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而 db承担数据落盘工作。哪些数据适合放入缓存?举例:电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定),后台如果发布一个商品,买家需要 5 分钟才能看到新的商品一般还是可以接受的。即时性、数据一致性要求不高的访问量大且更新频率不高的数据(读多,写少)注意:在开发中,凡是放入缓
2021-08-10 18:08:03
489
原创 谷粒商城项目总结--分布式锁Redisson
分布式锁一、自己模拟一个分布式锁二、Redisson 完成分布式锁1.导入依赖2.配置3.使用3.1 可重入锁3.2 公平锁3.3 读写锁3.4 闭锁3.5 信号量一、自己模拟一个分布式锁 /** * @Description 自己模拟一个分布式锁 * 加锁使用setIfAbsent setnx(setIfPresent setex) * 值不要写固定字符串 使用大字符串如 UUID * 解锁使用lua脚本 */ public Map<
2021-08-10 17:13:36
413
原创 谷粒商城项目总结--Nginx
安装见环境篇文档配置文件全局块events块http块server块全局块用户组 user nginx;work进程数量配置 worker_processes auto;错误日志位置 error_log /var/log/nginx/error.log notice;pid文件位置 pid /var/run/nginx.pid;events块每个进程最大连接数 worker_connections 1024;http块支持的mime类型 in
2021-08-10 15:40:15
253
原创 谷粒商城项目总结--Elasticsearch
Elasticsearch一、基本概念二、安装三、初步检索1、_cat2、索引一个文档(保存)3、查询文档4、更新文档5、删除文档&索引6、bulk 批量 API7、样本测试数据四、进阶检索1、检索信息2、Query DSL1、基本语法格式2、返回部分字段3、match【匹配查询】4、match_phrase【短语匹配】5、multi_match【多字段匹配】6、bool【复合查询】7、filter【结果过滤】8、term9、aggregations(执行聚合)3、Mapping4、数据迁移5、分词
2021-08-09 21:24:03
887
1
原创 谷粒商城项目总结--JSR303数据校验
分组校验需要指定groups 需要@Validated 需要创建相应的接口设置不同分组可以设置不同状态下的校验规则//接口什么都不用写 创建就行public interface UpdateGroup {}public interface AddGroup{} @NotNull(message = "修改必须指定ID",groups = {UpdateGroup.class}) @Null(message = "新增不能指定ID",groups = {AddGroup.class}) @.
2021-08-09 18:12:51
195
原创 谷粒商城项目总结--MyBatis-Plus
MyBatis-Plus分页逻辑删除参考官网 https://mp.baomidou.com/guide/分页配置分页插件//Spring boot方式@Configuration@MapperScan("com.baomidou.cloud.service.*.mapper*")public class MybatisPlusConfig { // 最新版 @Bean public MybatisPlusInterceptor mybatisPlusInterce
2021-08-09 17:53:32
165
原创 谷粒商城项目总结--SpringCloud Alibaba
SpringCloud Alibaba1. 版本选择2. 项目中的依赖NacosSpringCloud Alibaba-Nacos[作为注册中心]SpringCloud Alibaba-Nacos[作为配置中心]Feign 声明式远程调用Gateway1. 版本选择由于 Spring Boot 1 和 Spring Boot 2 在 Actuator 模块的接口和注解有很大的变更,且spring-cloud-commons 从 1.x.x 版本升级到 2.0.0 版本也有较大的变更,因此我们采取跟Sp
2021-08-09 17:13:22
237
原创 谷粒商城项目总结--环境篇
环境搭建安装DockerDocker 安装 MySqlDocker 安装 RedisMavenGit安装Docker安装文档 https://docs.docker.com/engine/install/centos/1、卸载系统之前的 dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \doc
2021-08-09 16:13:05
180
原创 RabbitMQ
1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.相关配置 spring.rabbitmq.host=192.168.0.1 spring.rabbitmq.port=567.
2021-08-05 14:32:30
57
原创 云服务器搭建环境
服务器:Vultr 系统:Centos71. 安装OpenJdk查看系统是否安装过java [root@localhost home]# yum list installed|grep java如果有旧版本的java,可以用如下方法卸载java [root@localhost home]# yum -y remove java-1.8.0-openjdk*查看java软件包列表 [roo...
2019-08-05 16:06:55
145
原创 Solrj使用的一些坑
**1.org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost/Solr/index.html#/core: Expected mime type application/octet-stream but got text/html. &...
2019-07-14 17:01:35
265
转载 Solr在tomcat部署
原文:https://blog.csdn.net/qq_41335879/article/details/81261240- 下载solr.tar.gz,解压缩复制server/solr-webapp/webapp到tomcat中的webapps下重命名为solr将server/solr复制到一个地方(随便)重名为solrhome(可以不重命名)复制solr运行是的jar到tomcat的w...
2019-07-14 15:34:19
58
转载 TCP/IP-三次握手和四次挥手
TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k...
2019-07-13 21:50:42
333
转载 Centos7设置IPtables
转载自 https://www.cnblogs.com/lijiasnong/p/4991015.htmlCentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewall:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止f...
2019-07-11 21:12:07
103
转载 搭建Nginx+Ftp出现的问题
1.端口被占用启动nginx时显示nginx: [emerg] bind() to 0.0.0.0:888 failed (98: Address already in use)杀死占端口的进程或者改相应的默认的端口号我的是docker占用了80端口所以service docker stop 就ok了2.重启虚拟机后,再次重启nginx会报错:open() “/var/run/n...
2019-07-11 21:08:58
685
转载 搭建Ftp
1 安装vsftpd组件[root@bogon ~]# yum -y install vsftpd1安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。2 添加一个ftp用户[root@bogon ~]# useradd ftpuser1此用户就是用来登录ftp服务器用的。这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认...
2019-07-11 21:00:17
70
转载 Nginx configure文件配置详解
转载自https://blog.51cto.com/10978134/2156909在"./configure"配置中,"–with"表示启用模块,也就是说这些模块在编译时不会自动构建"–without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块。[root@localhost nginx-1.14.0]# ./configure...
2019-07-11 20:52:44
1797
翻译 Nginx安装
一.Nginx安装安装环境nginx是C语言开发,建议在linux上运行,本服务器为Centos7。gcc安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum installgcc-c++PCREPCRE(Perl Compatible Regular Expressions)是一个Perl库,包括per...
2019-07-11 20:46:05
61
原创 解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile
今天构建Maven项目的时候出现了Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project autotest_fchtgl: Compilation failure[ERROR] No compiler is provided in ...
2019-07-10 23:06:40
373
转载 数据结构-链表-反转单链表
先贴一下LeetCode的答案方法一:迭代假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。不要忘记在最后返回新的头引用!Javapublic ListNode reverseLi...
2019-06-30 16:57:08
175
转载 数据结构-概论
1.数据:信息的载体,能被计算机识别、存储和加工处理。2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。3.数据结构:数据之间的相互关系,即数据的组织形式。它包括:数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机;数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算...
2019-06-29 18:30:52
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人