自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 InnoDB的B+Tree索引

聚集索引和二级索引

2021-03-29 10:32:26 838 2

原创 redis两种持久化方式

redis两种持久化方式两种持久化方式RDB优点缺点AOF优点缺点如何选择使用哪种持久化方式RDB的工作过程AOF文件的重写如果AOF文件损坏了怎么办AOF重写过程备份数据两种持久化方式redis 提供了不同级别的持久化方式:RDB:能够在指定的时间间隔能对你的数据进行快照存储。AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾。RDB优点RDB文件非常适合备份。例如,您可以在最近的24小时内每

2021-03-26 16:45:23 370

原创 SQL优化和执行

一条SQL语句,在MySQL中是如何执行的select * from T where ID=10;update tb_stu A set A.age=‘19’ where A.name=‘张三’;update语句的执行过程和select语句差不多,但是在update语句执行的过程中,MySQL新增加了两个重要的日志模块,他们分别是redo log(重做日志)和binlog(二进制日志、也可以称之为归档日志)。Innodb存储引擎中,内存和磁盘是通过数据页进行交换的,而内存的处理速度远远超过磁盘处理

2021-01-04 17:25:15 443 1

原创 超出物理内存后的Redis应对策略

当Redis内存超出物理内存限制时,内存的数据会开始和磁盘产生频繁的交换。交换会让Redis的性能急剧下降,对于访问量比较频繁的Redis来说等于不可用。为了限制最大使用内存,Redis提供了配置参数maxmemory来限制内存超出期望大小。当实际内存超出maxmemory时,Redis 提供了几种可选策略来让用户自己决定该如何腾出新的空间以继续提供读写服务:1.noeviction不会继续服务写请求 (DEL请求可以继续服务),读请求可以继续进行。这样可以保证不会丢失数据,但是会让线上的业务不能持续进

2020-10-18 19:43:36 445

原创 redis缓存更新策略方式

redis缓存更新策略先删除缓存,后修改数据库先修改数据库,后删除缓存延迟双删内存队列第三方队列先删除缓存,后修改数据库这个方案显然是有问题的,不推荐使用。两个并发的读写操作:一个写的操作先进来,把缓存删除了;在写操作还没有更新数据库的时候,一个读的请求又进来了,发现没有命中缓存,就去数据库把老数据取出来了;写操作更新了数据库;读操作把老数据放在了缓存中。这样,数据库中的数据和缓存中的数据就不一致了这个方案显然不行,在此场景下能保持数据一致?让我们设想下这样的场景:一个写的请求进来

2020-09-15 10:16:04 3344

原创 设计模式-策略模式

意思:指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换。关键代码:实现同一个接口。应用实例:商场促销方式,打折、满减等。旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。JAVA AWT 中的

2020-09-09 23:53:40 99

原创 mongodb加入权限认证

步骤###启动( x.x.x.x 为ip)bin目录下./mongo x.x.x.x:27017 (绑定ip和端口号)mongodb.conf中没有绑定ip 启动要绑定ip启动服务:/kingdom/mongodb366/bin/mongod --bind_ip x.x.x.x -f /kingdom/mongodb366/mongodb.conf1.创建管理员用户 先进入a...

2020-08-17 22:25:05 187

原创 java接口对接多种情形

java接口对接一级目录发送POST请求,包含文件MultipartFile参数,普通字符串参数,请求头参数一级目录发送POST请求,包含文件MultipartFile参数,普通字符串参数,请求头参数请求入下图/*****/ public ResultInfo fileUpLoad(MultipartFile multipartFile, Long annId ,String uId) throws Exception{ ResultInfo resultInfo = new

2020-08-12 17:44:09 1510

原创 mysql

mysql存储引擎MyISAM与InnoDB区别索引MyISAM索引与InnoDB索引的区别索引有哪些优缺点索引有哪几种类型创建索引的三种方式删除索引使用索引查询一定能提高查询的性能吗?什么是最左前缀原则?什么是最左匹配原则B树和B+树的区别使用B树的好处使用B+树的好处索引的基本原理索引算法有哪些索引的数据结构(b+树,hash)Hash索引和B+树所有有什么区别数据库为什么使用B+树而不是B树B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据什么是聚簇索引?何时使用聚簇索引与非聚簇索引非聚簇索引一定

2020-08-01 17:35:19 236

原创 JVM

触发Full gc条件从年轻代空间(包括Eden和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的。Major GC的速度一般会比Minor GC慢10倍以上。1、System.gc()方法的调用此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数

2020-07-31 14:54:14 245

原创 RabbitMQ资料

使用目的缺点MQ 有哪些常见问题RabbitMQ重复消费和幂等性问题如何保证高可用的?RabbitMQ 的集群如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么解决使用目的异步处理 - 相比于传统的串行、并行方式,提高了系统吞吐量。应用解耦 - 系统间通过消息通信,不用关心其他系统的处理。流量削锋 - 可以通过消息队列长度控制请求量;可以缓解短时间内的高并发请求。日志处理 - 解决大量日志传输。消息通讯 - 消息队列一般都内置了高效的

2020-07-19 17:39:22 550

原创 vue部署docker下的nginx刷新404

部署到nginx,访问首页没问题,从首页里跳转其他页面也没问题,但是非首页的其他页面,再次刷新,就会出现404现象。Dockerfile'# 使用官方镜像,官方镜像比较纯净,没有curl等网络工具,需要安装网络工具需要自己构建nginx镜像FROM nginx'# 将你的打包目录(h5)拷贝到 nginx镜像指定目录中COPY h5/ /usr/share/nginx/html/'# 将自定义的配置文件覆盖默认的配置文件COPY default.conf /etc/nginx/conf.d/d

2020-07-19 15:59:14 882

原创 判断用户是否已关注公众号

背景业务场景是:判断当前登录用户是否已经关注指定的官方微信公众号,没有就指引用户关注。微信公众号官方文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html详细步骤一.公众号后台配置获取appid, appsecret,添加白名单登录微信公众平台,进入基本配置。开发中需要用到两个参数,appId和appSecret(appSecret只展示一次,需保存下来,否则需要重置获取)。获取acce

2020-06-10 11:34:16 2629 1

原创 幂等性及解决方案

概念一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。

2020-05-29 14:43:05 729

原创 redis缓存常见问题及解决方案

缓存雪崩当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压 力。导致系统崩溃。解决方案:在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线 程查询数据和写缓存,其他线程等待。做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为 短期,A2设置为长期 。将缓存失效时间分散开,比如可以在原有的失效时间基础上增加一个随机值, 比如 1-5 分钟随机,这样每一个缓存的过期时间的重复率

2020-05-26 23:19:21 420

原创 并发与多线程

基本概念并发:在某个时间段内,多任务交替处理的能力。并行:同时处理多任务的能力。并发与并行的目标:尽肯能快的执行完所有任务。并发特点:并发程序之间有相互制约的关系。(1)直接制约:一个程序需要另一个程序的结果。(2)间接制约:程序间竞争共享资源。并发程序的执行过程是断断续续的并发数设置合理并且CPU拥有足够处理能力是,并发会提高程序的效率(1)在极端情况下,比如单核CPU,在单核的条件下,并发一般比串行效率要低,只要消耗在上下文切换–记忆现场和恢复现场等。(2)防止阻塞:单核CPU下

2020-05-18 22:53:49 1148

原创 mongodb安装以及开启账户认证

mongodb安装以及开启账户认证1.下载mongodb2.创建存储数据的文件夹、日志、配置文件3.启动mongodb4.添加超级用户5.为数据库创建用户1.下载mongodbyum -y install nsscurl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.16.tgztar -zxvf mongodb-...

2020-04-20 16:28:38 327

原创 docker一站式学习

@文章目录docker基础知识二级三级目录docker安装与启动centos7.x镜像三级目录1.docker基础知识镜像是构建docker的基石,用户基于镜像来运行自己的容器、镜像也是docker生命周期中的构建部分。镜像是基于联合文件系统的一种层式结构,由一系类指令构建出来。例如:添加一个文件;执行一个命令;打开一个窗口;也可以将镜像当做容器的“源代码”。镜像的体积很小...

2020-04-19 14:36:11 552 1

原创 vue创建项目入门

安装node.js安装vue-cli (在命令行输入:npm install -g vue-cli等待完成)安装python 2.74.用vue-cli构建项目1)要创建项目,首先我们要选定目录,然后再命令行中把目录转到选定的目录。在这里,选择桌面来存放新建的项目,则我们需要先把目录cd到桌面2)在桌面目录下,在命令行中运行命令 vue init webpack firstVue 。...

2020-04-09 13:57:32 169

原创 linux基本操作命令大全

一:文件类操作1.加权限 chmod +x bin/*2.cd /,意思是回到根目录; cd … , 意思是到上一级目录;3.查看文件大小比如查找文件名为backup.sh文件的大小,命令为:du -s backup.sh ,ls -lh backup.shls -lht 将会一一列出当前目录下所有文件的大小,以及所有文件大小的统计总和。或者直接打入ll命令。4.切换用户 s...

2020-04-08 17:48:41 546

原创 linux下mysql 8.0的安装

1.安装前,我们可以检测系统是否自带安装 MySQLrpm -qa | grep mysql2.如果你系统有安装,那可以选择进行卸载:yum remove mysql-libs-5.1.71-1.el6.x86_643.官网下载mysql二进制文件,匹配自己的linux版本4.拷贝文件到/usr/local/cp mysql-8.0.13-linux-glibc2.12-x86_64...

2020-04-08 00:01:26 226

原创 SpringBoot项目启动报:无法访问org.springframework.context.ConfigurableApplicationContext

以下几种方法可以尝试方法一:修改了父项目的版本号就可以了。org.springframework.bootspring-boot-starter-parent2.1.4.RELEASE方法二:修改配置idea中maven的配置setting.xml方法三:需删除项目自动生成的xxx.iml ,然后在右侧maven tab中先remove projects再重新引入项目的p...

2020-04-07 23:27:32 17116 2

原创 redis知识和常用命令

1.库之间的切换 select num (num为库的下标,默认0)2.数据库的多少 DBSIZE3.FLUSHAL 删除所有的库 ; FLUSHDB 删除当前库4.5大数据类型1.String(字符串)2.Hash(哈希,类似java里的Map) Map<String,Object>3.List(列表)4.Set(集合)5.Zset(sorted set:有...

2020-04-07 21:59:02 222

原创 IDEA启动时报Failed to create JVM错误

解决办法是打开C盘\用户\用户名.IntelliJIdea*\config\idea64.exe.vmoptions文件修改即可,修改安装目录下的文件无效的文件格式,有效格式是-开头。

2020-02-05 14:29:34 2395 3

空空如也

空空如也

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

TA关注的人

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