- 博客(36)
- 收藏
- 关注
原创 redis分布式锁
redis分布式锁1.前言2.搭建超卖工程2.1 超卖工程测试说明2.2 搭建 SpringBoot 工程2.2.1 搭建 SpringBoot 工程的步骤1.单机版程序没加锁存在什么问题?3.3.2、分布式版3.3.2.1 **在代码中使用分布式锁**3.3.2.2 finally 版3.3.2.3 过期时间版3.3.2.4 加锁原子版3.3.2.5 动别人奶酪版3.3.2.6 解锁原子版3.3.2.7 自动续期版总结:3.3.3分布式锁总结1.前言什么是分布式锁?有哪些实现方案? 谈谈你对redis
2021-11-15 16:03:47 1981
原创 docker搭建mysql主从复制
docker搭建mysql主从复制1.1 搭建环境1.2 安装docker1.3 启动Docker1.4 安装MySQL1.5 运行主容器master1.6 检验是否启动成功1.7 创建主容器的复制账号1.8 修改MySQL配置环境1.9 运行MySQL从容器slave11.10 运行MySQL从容器slave21.11 配置主从复制1.12 检查是否配置成功1.13 测试主从复制1.1 搭建环境Centos 7 64位MySQL 5.7.13Docker 1.13.1接下来,我们将会在一台服务器
2021-10-28 10:38:28 571
原创 Git 常用命令
命令名称作用git config --global user.name 用户名设置用户签名git config --global user.email 邮箱设置用户签名git init初始化本地库git status查看本地库状态git add 文件名添加到暂存区git commit -m " 日志信息" 文件名提交到本地库git reflog查看历史记录git reset --hard 版本号版本穿梭1.1 设置用户签...
2021-10-27 08:42:24 264
原创 定时任务调度
定时调度任务概述1.1 什么是定时任务调度1.2 定时任务的应用场景1.3 定时任务调度框架种类2 SpringBoot整合SpringTask任务调度框架的使用2.1 注解2.2 **启动类启用定时任务调度**2.3 创建定时任务实现类2.4 参数说明2.5 CronTrigger 的使用1.1 什么是定时任务调度任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务1.2 定时任务的应用场景定时任务的应用场景–什么时间去执行什么任务:1 月底移动扣话费2 会员到期3 生日祝福
2021-10-26 08:16:36 418
原创 Git的概述与安装
1.Git 概述Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。Git 易于学习, 占地面积小, 性能极快。 它具有廉价的本地库, 方便的暂存区域和多个工作 流分支等特性。 其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。1.1 何为版本控制版本控制是一种记录文件内容变化, 以便将来查阅特定版本修订情况的系统。1.2为什么需要版本控制个人开发过渡到团队协作。1.3 版本控制工具➢ 集中式
2021-10-19 21:29:17 220
原创 Git中工作区、暂存区、本地仓库、远程仓库,分支?
Git中工作区、暂存区、本地仓库、远程仓库,分支?工作区:暂存区:本地仓库:远程仓库:分支:工作区:在当前文件夹通过git init 命令初始化(或者通过克隆的方式)之后,都会生成一个 .git的隐藏文件夹,那么这些我们可以直接修改的文件所在空间就是工作区:暂存区:当我们使用 git add [文件名]或者git add .命令的时候,就是把我们在工作区添加、删除或者修改等等在工作区对文件的操作,同步到暂存区(暂存区的内容变得跟工作区一样)本地仓库:我们在工作区对代码操作完后,把它提交到本地仓库
2021-10-14 20:14:36 419
原创 Sharding-JDBC与JDBC性能对比
性能损耗测试 :服务器资源充足、 并发数相同 ,比较JDBC和Sharding-JDBC性能损耗 ,Sharding-JDBC相对 JDBC损耗不超过7%。性能对比测试 :服务器资源使用到极限 ,相同的场景JDBC与Sharding-JDBC的吞吐量相当。性能对比测试 :服务器资源使用到极限 ,Sharding-JDBC采用分库分表后 ,Sharding-JDBC吞吐量较JDBC不分 表有接近2倍的提升。...
2021-10-13 20:51:15 624
原创 Sharding-JDBC介绍
Sharding-JDBC介绍Sharding-JDBC是当当网研发的开源分布式数据库中间件 ,从 3.0 开始Sharding-JDBC被包含在 Sharding-Sphere 中 ,之后该项目进入进入Apache孵化器 ,4.0版本之后的版本为Apache版本。ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈 ,它由Sharding-JDBC、 Sharding- Proxy和Sharding-Sidecar(计划中 )这3款相互独立的产品组成。 他们均提
2021-10-11 20:02:24 715
原创 什么是缓存击穿、缓存穿透、缓存雪崩?
什么是缓存击穿、缓存穿透、缓存雪崩?1)缓存穿透:缓存穿透是指查询内存和数据库都不存在的数据,每次请求都会打到数据库上,从而压垮数据库。解决方案:缓存击穿:redis中不存在这个key,数据库中存在,key在redis中过期了,当大量请 求过来的时候,请求会直接打到数据库上,引起数据库崩溃解决方案:缓存雪崩:redis中不存在这些key,数据库中存在,这些key在某一时间集中过期了, 当大量请求过来的时候,请求会直接打到数据库上,引起数据库崩溃解决方案:1)缓存穿透:缓存穿透是指查询
2021-10-07 18:07:28 212
原创 什么是哨兵机制?哨兵机制的工作原理是什么?
什么是哨兵机制?哨兵机制的工作原理是什么?主从架构中,主机宕机,从机无法自动上位,需要手动上位,而哨兵机制就是自动上位1.基于主从方案的缺点还是很明显的,假设主机宕机,那么就不能写入数据,那么从机也就失去了作用,整个架构就不可用了,除非你手动切换,主要原因就是没有自动故障转移机制。而哨兵具备自动故障转移、集群监控、消息通知等功能。2.哨兵可以同时监视多个主从服务器,并且在被监视的主机下线时,自动将某个从机提升为主机,然后由新的主机继续接收命令。3.哨兵会每隔1秒向所有实例(包括主从服务器和其他哨兵)
2021-10-06 10:23:36 2310
原创 redis主从复制的原理
主从复制的原理1)当从服务器连接上主服务器之后,从服务器就会向主服务器发送一个sync命令进行数据同步操作2)主服务器接到从服务器发过来的同步命令,先将主服务器数据进行持久化,生成rdb文件,然后把rdb文件发送给从服务器,从服务器拿到rdb进行读取,完成复制3)每次主服务器进行写操作之后,和从服务器进行数据同步4)全量复制:从机第一次连接主机,主机所有的数据将会同步给从机。5)增量复制:主机继续将新的数据依次传给从机6)但是只要是重新连接master,全量复制都会自动执行1)当从服务器连接上主服务器之后
2021-10-04 18:05:50 167
原创 Redis持久化方式有哪些?有什么区别?
redis持久化方式有哪些?有什么区别?RDB:AOF:1.当AOF持久化处于激活状态,服务器执行完写命令之后,写命令将会被追加append到aof_buf缓冲区的末尾2.在服务器每结束一个事件循环之前,将会调用flushAppendOnlyFile函数决定是否要将aof_buf的内容保存到AOF文件中,可以通过配置appendfsync来决定。配置如下:redis持久化方案分为RDB和AOF两种。RDB:RDB持久化可以手动执行也可以根据配置定期执行,它的作用是将某个时间点上的数据库状态保存到RDB
2021-09-30 08:14:09 581
原创 Redis的事务机制
你了解redis的事务机制吗?redis通过MULTI、EXEC、WATCH等命令来实现事务机制,事务执行过程将一系列多个命令按照顺序一次性执行,并且在执行期间,事务不会被中断,也不会去执行客户端的其他请求,直到所有命令执行完毕。事务的执行过程如下:1)服务端收到客户端请求,事务以MULTI开始2)如果客户端正处于事务状态,则会把事务放入队列同时返回给客户端QUEUED(队列),反之则直接执行这个命令3)当收到客户端EXEC命令时,WATCH命令监视整个事务中的key是否有被修改,如果有则返回空回复到客户端
2021-09-29 08:17:46 204
原创 redis单线程和优劣势
为什么Redis是单线程的因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。Redis单线程的优劣势1)单进程单线程优势代码更清晰,处理逻辑更简单2)单进程单线程弊端无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善。...
2021-09-28 08:52:24 664
原创 linux命令测试
一、简答题:1 虚拟机的三种网络访问方式 6分1 桥接模式:虚拟机是一台独立的电脑2 仅主机模式(host-only):虚拟机可以访问宿主机,虚拟机无法上网,宿主机可以访问虚拟机3 NAT模式:虚拟机可以访问宿主机,宿主机可以访问虚拟机 此时宿主机相当于路由器,虚拟机可以通过宿主机上网宿主机可以配置254个虚拟机2 linux中的/和~的区别 2分是当前用户的目录地址/ 是根目录的地址3 在linux中的权限中,rwx各代表什么意思? 3分r:读取权w:写入权x:执行权
2021-09-27 08:13:44 228
原创 Redis的高并发和快速原因
Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用I/O多路复用技术,可以处理并发的连接。(客户端的连接不占用线程资源,只有当命令成功发送的时候,才会进入单线程,然后依次执行)解释:多路:多个socket、多个客户端、多个黑窗口复用:复用那一个线程...
2021-09-26 20:03:40 134
原创 生成微信二维码和微信支付
生成二维码和微信支付1.流程分析1.2微信支付概述1.2.1账号分析步骤二:微信认证,公众号认证后才可申请微信支付步骤三:申请微信支付步骤四:商户账号审核步骤五:在线签署协议1.2.2支付接口和SDK(了解)在测试项目完成操作:test-wxpay步骤一:添加依赖步骤二:编写配置类,实现WXPayConfig接口步骤三:测试类3. 查询订单4.JS版二维码:QRCode.js拷贝qrcode.min.js编写wxpay.html5.支付页面创建页面后端实现工具类1.流程分析1.2微信支付概述1.2
2021-06-21 20:16:51 1468
原创 HTTP常见的错误状态码(404、401、500、503等)
一些常见的错误状态码一些常见的状态码为:一些常见的状态码为:200 - 服务器成功返回网页400异常 (错误请求) 服务器不理解请求的语法。401(未授权)。请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。404 未找到。服务器找不到请求的网页。(俗称:路径错误)500 (服务器内部错误) 服务器遇到错误,无法完成请求。503 服务不可用...
2021-06-17 18:11:47 745
原创 jQuery
jQuery1. 导入2. 页面加载成功函数2.1 选择器3. 事件绑定3.1点击事件绑定3.2实例4.常见函数我们下期见1. 导入<!-- 导入jquery --><script type="text/javascript" src="js/jquery-3.3.1.js"></script>2. 页面加载成功函数<html lang="en"><head> <meta charset="UTF-8">
2021-06-16 20:12:05 72
原创 互联网微服务SpringCloud
1.回顾:Spring Cloud•Eureka和众多服务执行流程网关 Zuul2.1 现有问题?•不同的服务,有不同的端口号,在访问的时候,就需要写不同的访问路径http://localhost:9010/classeshttp://localhost:9020/student2.2 网关zuul执行原理分析2.3 Zuul网关入门•创建项目:day42-cloud-zuul•修改pom.xml文件,添加zuul依赖 <dependencies>
2021-06-07 20:19:04 287
原创 数据结构时间复杂度
时间复杂度掌握顺序表的CRUD操作--顺序表:模仿ArrayList顺序表中:新增和删除都需要挪动元素复杂度分析什么是复杂度分析?复杂度分析的过程中:一般情况下,排除硬件的影响复杂度分析分为两个:1.1 时间复杂度1.1.1 什么是时间复杂度1.2Array的CRUD复杂度分析时间复杂度:掌握算法的时间复杂度分析新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义
2021-05-27 20:22:21 446
原创 Element UI渲染表格总结
文章目录1.表格:查询列表1.1 测试页面1.2 基本表格1.3 表格修饰1.4 多选1.5 自定义模板1.6总结1.表格:查询列表1.1 测试页面1.2 基本表格<template> <div> <!-- 列表 --> <el-table :data="studentList" > <el-table-column prop="sid" label="编号" width="150"></el-ta
2021-05-21 11:06:59 551
原创 Element UI入门
1.1什么是Element UIElement,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库Element UI是基于Vue 2.0的Element UI 提供一组组件Element UI 提供组件的参考实例, 直接复制官方网站:https://element.eleme.cn/#/zh-CN/component/installation1.2搭建环境1.2.1创建vue项目步骤一: 通过 vue-cli创建项目vue create 项目名步
2021-05-20 20:11:07 1076
原创 EasyExcel入门与读写操作练习
EasyExcel入门2.1 导入坐标 <dependencies> <!-- easy excel 依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6&
2021-05-19 08:12:29 123
原创 前端SPA以及练习
1. 环境搭建1.1 创建前端项目vue create exam-student-spa1.2 下载axioscnpm install axios --save1.3 启动npm run serve1.4 访问http://localhost:8080/前端项目启动时,默认使用的8080端口,后端程序启动时,需要将端口号改成8081注意:Swagger 配置类中的端口1.5 修改入门页面[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(
2021-05-18 20:22:32 239
原创 Nuxt学生管理综合案例
这里写自定义目录标题Nuxt综合案例查询所有学生:前端编写客户端插件配置axios :baseURL配置插件编写插件编写学生列表页面(使用插件)条件:班级列表班级后端服务前端实现编写服务端插件Nuxt综合案例查询所有学生:前端### 前端基本环境创建前端项目:demo-nuxt编写导航:学生列表编写客户端插件配置axios :baseURL配置插件编写插件const request = {}var axios = nullexport de
2021-05-12 21:20:05 134
原创 Nuxt的ajax操作
嵌套路由条件1:创建父组件,同时创建同名的文件夹,在文件夹中存放子组件。条件2:在父组件中,添加显示子组件 <nuxt-child>过渡动画效果全局动画1)给固定名称的样式,编写动画效果2)配置nuxt全局css自定义动画1)给部分固定名称的样式,编写动画效果(.自定义名称-enter-active 、.自定义名称-leave-active)2)配置nuxt全局css3)在指定vue页面中启动自定义动画( transition: ‘自定义名称’)nuxt特殊属
2021-05-10 19:59:07 411
原创 Nuxt.js入门
1. Nuxt.js入门1.1.1 目标:目标:搭建nuxt.js入门程序1.1.2 路径官方提供的方式https://www.nuxtjs.cn/guide/installation1.1.3 体验npx create-nuxt-app《项目名》目录:assets 资源目录,用于存放需要编译的内容(less、sass 等)static 资源目录,用于存放不需要编译的内容(image、css、js 等)pages 页面(组件)目录,自动生成路由//
2021-05-07 19:59:47 180
原创 Nacos 的下载安装及常见错误
这里写自定义目录标题1.下载2.安装3.注意事项:4.启动:执行结果:5.常见错误解决方式:6.nacos打开方式1.下载https://github.com/alibaba/nacos/releases/tag/1.4.12.安装3.注意事项:要求:操作系统的位数(32位/64位),和JDK的位数一致的JDK的位置:4.启动:在Nacos安装的bin目录下执行startup.cmd -m standalone命令执行结果:5.常见错误解决方式:1)删除data目录重试如
2021-04-26 17:58:14 1632
原创 Nacos 基础介绍
Nacos的介绍、CAP的理论、CAP的原则1.什么是nacos* Nacos用于服务的注册发现与服务的配置管理。* Nacos提供了简单易用的Web Console。可以帮助开发者快速的实现服务发现、服务配置管理、服务元数据等需求。* 官方文档2.常见的注册中心2.CAP理论CAP三要素:2.1一致性(Consistency): 所有节点在同一时间具有相同的数据2.2.可用性(Availability) :保证每个请求不管成功或者失败都有响应2.3.分区容错性(Partition tolerance) :
2021-04-22 20:48:08 611 1
原创 SpringCloud Alibaba与SpringCloud关系
SpringCloud Alibaba与SpringCloud关系,优势,版本介绍SpringCloud Alibaba是SpringCloud的==子项目==SpringCloud Alibaba是依赖SpringCloud相关的标准实现的一套微服务的全家桶。目的:SpringCloud Alibaba的优势版本SpringCloud Alibaba是SpringCloud的子项目SpringCloud Alibaba是依赖SpringCloud相关的标准实现的一套微服务的全家桶。目的:是为了推广
2021-04-21 20:14:01 791 1
原创 Spring Cloud alibaba入门
Spring Cloud alibaba入门,通俗易懂,风味幽默,忍不住分享给大家1.首先,什么是Spring Cloud alibaba2.SpringCloud Alibaba主要功能3.SpringCloud Alibaba核心组件1 .Nacos (配置中心与服务注册与发现)2.•Sentinel (分布式流控)3.RocketMQ (消息队列)4.•Seata (分布式事务)5.•Dubbo (RPC)1.首先,什么是Spring Cloud alibaba•SpringCloud Aliba
2021-04-20 20:40:36 112
原创 MySql入门
MySQL入门sql是跟数据库沟通 所用的语言。 是一种结构化的语言。各个DBMS 都支持 SQL语句。DDL 定义语言(Data Definition Language)用来定义数据库对象,也就是创建,修改,删除:数据库,表,列等。关键字:create,alter,drop等例如:-- 创建一个数据库 数据库的名字 叫T03create database T03;-- 删除数据库 T03drop database T03;展示效果首先要选中数据库-- 创建一个表 表明是 u
2021-04-08 15:59:22 156 1
原创 Excel文件上传
使用upload上传Excel文件Excel文件格式编写后端代码controller: @PostMapping("/upload") public BaseResult upload(MultipartFile file) throws IOException { EasyExcel.read(file.getInputStream(), LevelVo.class,levelListener).sheet(0).doRead(); return Bas
2021-04-01 21:12:36 1099 2
原创 MySQL数据库多表
多对多通常 在写项目的时候 一个页面的信息 可能会从 多张数据表中获取数据. 这时就涉及到了 表的多对多关系要构建 两个表的 多对多关系, 通常会使用 第三张表 来描述多对多关系. 这个第三张表称作是中间表通过 给中间表 添加 两个外键 分别参照 两个表. 这时这两个表就构成了 多对多关系创建表的过程:1.创建商品表2.订单表3.中间表4.中间表添加两个外键 分别参照 商品表和 订单表. 添加完之后 商品表和订单表就构成多对多了.常见异常在这里插入图片描述三表联查的时候
2020-09-17 08:01:57 160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人