自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)

windows 安装 mysql 后出现 Access denied for user 'root'@'localhost' (using password: YES/NO) ,一半是由于端口号被占用,MySQL默认端口号是3306,使用 netstat -ano|findstr "3306" 查看 3306 端口被占用的进程 pid(最后一列),再使用 task /F -pid进程号 杀死进程,重新运行 netstat start mysql 启动 MySQL ,即可启动成功!...

2022-04-09 16:43:46 1065

原创 数据增多了,该加内存还是加实例?【切片集群】

假想一下,如果要用 Redis 保存 5 亿个键值对,平均每个键值对是 512 B,那么大概这些键值对所占的空间是 25 G,一种方案是选择更大内存的服务器,比如 32 G,这样就能保存所有的数据,同时留有 7G 的内存,可以保证系统的正常运行。但这样 Redis 服务器运行久了会出现响应速度慢的问题。使用 INFO 命令查看 latest_fork_usec(表示最近一次 fork 的耗时),发现持久化的时间特别长,快到秒级别了。这跟 Redis 的持久化机制有关,在使用 RDB 持久化时,Redis

2022-04-01 00:45:03 965

原创 哨兵挂了,主从库能切换吗

哨兵机制实现了监控、选主、通知功能。如果多个实例组成了哨兵集群,即使有哨兵实例出现了故障,其他哨兵还能继续协作完成主从库切换的工作,包括判断主库是不是处于下线状态,选择新主库,以及通知从库和客户端。在配置哨兵信息时,只需要配置主库的IP和端口,并没有配置其他哨兵的连接信息。sentinel monitor <master-name> <ip> <redis-port> <quorum> 那这些哨兵如何知道彼此的地址呢?基于 pub/sub 机制的哨兵

2022-03-19 12:44:07 918

原创 flask打开文件路径问题

最近刚使用 flask 开发python web,遇到了open 打开文件路径出错的问题,项目目录:train_model 目录:原来打开文件的方式:正确打开文件的方式:原因:因为文件是以 app.py 所在目录为根目录,所以要从路径要从根目录开始写。...

2022-03-15 22:07:21 1940

原创 主库挂了,如何不间断服务?(哨兵机制)

在主从集群模式下,如果从库发生了故障,客户端可以继续向主库或其他从库发送请求,进行相关操作;但如果主库挂了,就会直接影响到从库的同步,因为从库没有相应的主库可以进行数据复制。如果客户端发送的都是读操作,还可以由其他从库继续提供服务,在纯读环境下还能被接受。但如果是写操作,需要由主库来完成写操作,此时主库挂了不能继续服务写操作请求了。如下图:无论是无法写操作,还是无法进行数据同步,都是不能接受的。所以如果主库挂了,就需要有一个新的主库,把一个从库切换为主库。这里边涉及了一些问题:主库真的挂了吗?该选

2022-03-13 23:35:22 2851 1

原创 redis 主从库如何实现数据一致?

使用 AOF 和 RDB,如果 redis 发生了宕机,可以分别通过回放日志和重新读入 RDB 快照来恢复数据,保证尽量少丢失数据,提升可靠性。但如果只有一个 redis 实例,这个 redis 不幸宕机了,在它恢复期间,就无法服务新来的数据存取请求。因此,redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是读写分离的方式。读:主、从库都可以接收;写:首先到主库执行,然后主库将写操作同步到从库。采用读写分离的原因:如果不管主库还是从库,都能接收客户端的写操作,那么可能客户端对同

2022-03-10 23:36:09 1029

原创 宕机后,redis如何实现快速恢复?(RDB 内存快照)

AOF 记录的是操作命令,而不是实际的数据,所以使用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,redis 就会恢复得很缓慢,影响到正常使用。所以,redis 的另一种持久化方法:RDB 内存快照。内存快照是指内存中的数据在某一个时刻的状态记录,它是以文件的形式写到磁盘上,这样即使宕机了,快照文件也不会丢失,可靠性也就得到了保证。但引入 RDB 也会有问题:对哪些数据做快照?这会关系到快照的执行效率问题;做快照时,数据还能被增删改吗?这会关系到 redis 是

2022-03-09 16:51:58 1830

原创 redis宕机了,如何避免数据丢失?(AOF日志)

日常工作中,我们一般会把 redis 当作缓存使用。但是一旦服务器宕机,内存中的数据将会全部丢失。目前,redis 的持久化主要有两大机制,即 AOF 日志和 RDB 快照。AOF 日志是如何实现的?我们比较熟悉的是数据库的写前日志(Write Ahead Log,WAL),就是在实际写数据前,先把修改的数据记到日志文件中,以便故障时进行恢复。但是 AOF 日志刚好相反,它是写后日志,就是 redis 先执行命令,再把数据写入内存,然后才记录到日志。为什么 AOF 要先执行命令再记录日志呢?传统的

2022-03-08 23:25:19 913

原创 为什么单线程Redis能那么快?

相信在面试中会有不少人被问到:Redis是单线程吗?为什么单线程能这么快?Redis是单线程吗?首先 Redis 是单线程,主要是指 Redis 的网络IO和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值对存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,都是由额外的线程来执行的。所以 Redis 并不全部是单线程。要理解 Redis 为什么用单线程,我们可以先来了解下多线程的开销。“使用多线程,可以增加系统吞吐率”。确实,在合理的资源分配情况下

2022-03-08 18:10:01 857

原创 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

解决jdk11中的java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter添加以下依赖即可解决: <!-- jaxb依赖包 --> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId>

2020-11-08 17:24:15 1252 1

原创 Failed to determine a suitable driver class

***************************APPLICATION FAILED TO START***************************Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable dr

2020-10-31 09:03:40 109

原创 nginx: [emerg] CreateFile() “F:\桌面\nginx-1.12.2/conf/nginx.conf“ failed (3: The system cannot find t

在安装nginx时,启动nginx后出现nginx: [emerg] CreateFile() "F:\桌面\nginx-1.12.2/conf/nginx.conf" failed (3: The system cannot find the path specified)原因:路径出现了中文名,去掉中文名后成功启动。

2020-09-27 15:33:31 4747

原创 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could

在使用阿里云的oss时,由于项目是分模块的,在涉及oss模块里只想要用来上传文件,并不涉及访问数据库,因而出现了这个问题:Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class解决方法:在注解 @

2020-09-25 16:26:58 73

原创 Vue warn]: Invalid prop: type check failed for prop “min“. Expected Number with value 0, got String

element-ui 组件报错:Vue warn]: Invalid prop: type check failed for prop “min”. Expected Number with value 0, got String with value “0”. 出错位置: <el-form-item label="排序" prop="sort"> <el-input-number v-model="person.sort" controls-position="ri

2020-08-12 21:26:04 1248

原创 mybatis-plus 自动填充无法填充问题

在使用 mybaits-plus 的自动填充时,发现自动填充失败,项目是使用 maven 的多模块,把实现 MetaObjectHandler 的类写在公共模块中,发现填充失败!! 猜测是没有用到这个类,把这个类写到本模块中,就可以自动填充了。不知道具体原因,希望大佬解答。...

2020-08-12 20:06:31 1996 3

原创 vue-admin-template登录时没有发送info请求

最近在用springboot整合vue-admin-template时,在登录后通过浏览器network发现只发送了login请求,没有发送info请求,导致整合失败;通过浏览器控制台Response data查看后发现了登录失败的原因:原来的返回信息是"{"status":20000,"data":{"token":"admin"}},而vue-admin-template判断成功的代码是:if (res.code !== 20000),这里把返回值的“status”改为“code”,就可以登录成功,粗心

2020-08-11 11:53:28 1316

原创 跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。代码:public class Solution { public int JumpFloor(int target) { int a = 1, b = 1; for(int i = 1; i < target; i++) { a = a + b; b = a - b;

2020-07-18 21:13:20 80

原创 变态跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。代码:public class Solution { public int JumpFloorII(int target) { if (target == 0 || target == 1) { return 1; } int a = 1; for(int i = 2; i <= ta

2020-07-18 20:32:13 57

原创 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。代码:public class Solution { public int Add(int num1,int num2) { int res = 0; int carry = 0; do { res = num1 ^ num2; carry = (num1 & num2) << 1;

2020-07-14 21:56:19 83

原创 leetcode #452 射击气球

题目描述要是一箭射击更多的气球,最好的情况就是这些气球都有一个公共的坐标区间,所以我们可以先将这些气球按左端点进行排序,然后开始遍历,如果此时气球的左端点在当前区间内,则更新当前区间的左端点为气球的左端点,再比较气球的右端点和区间的右端点,如果区间的右端点比气球的右端点大,则更新区间的右端点为当前气球的右端点,从而缩小区间,找出更多的公共区间。如果一开始气球的左端点不在当前区间内,则射箭的数量+1,同时更新区间为气球的左右端点。代码class Solution { public int fi

2020-05-25 16:20:56 397

原创 leetcode #45 跳跃游戏2

题目描述其实这道题和55题思路差不多,也是用贪心算法,这道题的前提是总能到达最后一个位置,如果要用最少的跳数到达末尾,那不用跳是最好的情况,只有当前位置超过可到达的最远位置时,这时表示必须要有跳了,跳数加1,然后从当前位置跳动下一跳能到达最远位置的位置。代码class Solution { public int jump(int[] nums) { if(nums.length < 2) {//数组长度小于2,说明没有值或只有一个值,不用跳 re

2020-05-25 15:26:53 135

原创 Spring Boot 出现 Spring Boot Application in default package错

Spring Boot 出现 Spring Boot Application in default package错在stack overflow上看到的解决方案:application.java 文件不能直接放在main/java文件夹下,必须要建一个包把他放进去

2020-05-23 15:05:57 671

原创 【异常】MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on di

异常描述:redis设置值异常:127.0.0.1:6379> set password 123456(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to

2020-05-22 15:30:39 106

原创 leetcode #55 跳跃游戏

题目描述:思路:这道题用贪心算法,算出在每一个位置上可跳到的最远位置,如果在这个最远位置里,已经跳到了数组末尾,即表示可以到达。代码:class Solution { public boolean canJump(int[] nums) { int[] index = new int[nums.length];//该数组表示在第i个位置上可以到达的最远位置 for(int i = 0; i < nums.length; i++) {

2020-05-18 17:09:56 128

原创 java.lang.ClassCastException: class [C cannot be cast to class java.lang.String

在springboot整合shiro出现了java.lang.ClassCastException: class [C cannot be cast to class java.lang.String ([C and java.lang.String are in module java.base of loader 'bootstrap')这个问题,看了一遍代码,决定debug一下,发现在自定义Realm那里获取密码时出现了问题:原来是这样的:将下面获取密码的代码改为:成功运行。...

2020-05-17 16:26:34 3209

原创 SpringBoot 整合 Shiro (一)用户认证

SpringBoot 整合 Shiro 进行用户认证主要是通过以下三点:(1)定义一个ShiroConfig,配置SecuityManager,其中SecurityManager为shiro的管理器,管理着所有的Subject;(2) 在 ShiroConfig 配置 Shiro 的过滤工厂类 ShiroFilterFactoryBean,用于过滤一些不需要的资源,如静态资源;其依赖于 SecurityManager;(3) 自定义认证过程 Realm 的实现,Realm 包含授权 doGet

2020-05-17 16:20:00 198

原创 IDEA访问不了官网

IDEA访问不了官网这段时间使用的破解版idea出现了问题,决定换成正版的idea,去官网下载时居然进不了官网。。。。 网上查资料后才后知后觉,因为以前用的是破解版,修改过host文件的访问地址,需要修改回来,具体操作如下:(1)先找到host文件:C:\Windows\System32\drivers\etc(2)打开host文件:使用notepad可以直接编辑,或者用记事本等。(3)(4)ctrl + s保存host文件,就可以访问idea官网了。...

2020-05-13 11:03:59 2736

原创 leetcode #402 移掉K位数字

这道题采用贪心+栈的方法求解class Solution { public String removeKdigits(String num, int k) { Stack stack = new Stack(); StringBuilder result = new StringBuilder(); //存储最终结果 for(int i ...

2020-05-05 09:57:33 85

原创 leetcode #376 摆动序列

这道题用的是贪心算法,当有连续的递增或递减序列时,选择最大或最小的数,以得到长度最长的摆动序列。可利用状态图来理解。class Solution { public int wiggleMaxLength(int[] nums) { if(nums.length < 2) { return nums.length; } ...

2020-05-05 08:09:11 171 1

原创 leetcode #455 分发饼干

思路:利用贪心算法,先将两个数组进行排序,循环遍历这两个数组,直到有一个数组已被遍历完,此时返回孩子的个数child即为答案。class Solution { public int findContentChildren(int[] g, int[] s) { int child = 0; int cookie = 0; Arrays.s...

2020-05-04 18:53:47 84

原创 设计模式之单例模式

程序员在编写代码的过程中,面临着耦合性、内聚性以及可维护性,可扩展性、重用性和灵活性等多方面的挑战,因此设计模式是为了让程序具有更好的:①代码重用性;(相同功能不用多次编写)②可读性;(便于其他程序员阅读和理解)③可扩展性;(当增加新的功能时,非常方便)④可靠性;(增加新的功能后,对原来的功能没有影响)⑤使程序程序高内聚,低耦合;单例模式所谓单例模式就是采取一定的方法保证在整个软件系...

2020-05-04 17:00:14 120

原创 leetcode #120 三角形最小路径和

题目描述:该题是leetcode的中等题,一开始想到的是递归回溯,AC之后时间复杂度达不到要求,改为动态规划求解。思路:可以从上到下递推,也可以从下到上递推,这里用第二种,事实上也是第二种比较容易思考:求dp[i][j]时,每次比较这个数下面的两个数dp[i + 1][j],dp[i + 1][j + 1]的大小,选择小的一个加上本身就是当前的这个位置的最优解,这样就求得了状态转移方程。代码...

2020-04-20 19:16:37 88

原创 leetcode #53 最大子序和

题目描述:思路:这道题要有基础的动态规划知识才能get到思路,要求n个数的数组的最大字段和,转换为分别求以第1个,第2个……数字结尾的最大字段和,再找出n个结果中最大的,即为结果。临界值dp[0]为数组的第一个数字,如果dp[i - 1] > 0 , dp[i]=dp[i - 1] + nums[i];否则: dp[i] = nums[i]。代码:class Solution { ...

2020-04-14 14:05:24 73

原创 leetcode #198 打家劫舍

题目描述:思路:这道是动态规划的题,边界值为dp[0]和dp[1],求第i个房屋的最优解转化为求第i-1个房屋的最优解和第i-2个房屋的最优解加上第i个房屋的值,这两个最优解的最大值即为第i个房屋的最优解。代码:class Solution { public int rob(int[] nums) { if(nums.length == 0){ //数组长度为0的情...

2020-04-14 11:23:29 97

原创 leetcode #70 爬楼梯

题目描述:思路:这道题是动态规划,有点类似斐波那契数列,但如果只是单纯递归回溯的话会超时,需要进行优化。仔细分析一下,发现第i阶的走法等于第i-2阶的走法加上第i-1阶走法的数量。代码:class Solution { public int climbStairs(int n) { int[] dp = new int[n + 3]; //这是为了不用判断n=0的...

2020-04-14 10:38:42 98

原创 leetcode #200 岛屿数量

题目描述:该题是leetcode的中等题,首先想到的是搜索,深度优先搜索和广度优先搜索都行。这里用的是深搜。思路:创建一个二维数组来标记是否已经搜过,遍历原始数组,如果是陆地’1’且没有被搜过,就开始深搜;深搜完后,岛屿数量加1即可。代码如下:class Solution { //表示深度搜索的上下左右四个方向 static int[] dx = {-1, 1, 0, 0}...

2020-04-13 22:42:36 103

原创 leetcode #23 合并k个有序链表

示例:该题是leetcode的困难题,方案一是和21题一样,先合并两个链表,合并后的链表再和下个链表继续合并,循环下去,这种方案的时间复杂度为O(k^2*n),k表示链表的个数,n表示每个链表的平均节点数。方案一在leetcode上提交不过,即使答案正确。方案二:采用分治的方法,对k个链表进行分治,两两进行合并,时间复杂度O(knlogk),提交通过。方案二代码:class Solutio...

2020-04-13 20:29:22 119

原创 leetcode #21合并两个有序链表

示例:思路:创建一个头节点head和一个指向该节点的标记节点pre,遍历链表,比较两个节点val的大小,标记节点指向val小的节点,直到一个链表遍历完。最后如果链表1不为空,则pre指向l1;反之亦然。代码如下:class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { Lis...

2020-04-13 19:44:39 68

原创 leetcode #138 复制带随机指针的链表

题目描述:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。该题是leetcode的中等题,深复制一个链表,难点在于怎么复制节点的随机节点。思路:用一个hashmap存放着两个node节点,这两个node节点都相同,目的是为了在后面遍历时连接节点的next和random。代码如下:class Solution { ...

2020-04-12 16:35:03 76

原创 leetcode #86 分隔链表

题目描述:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。应当保留两个分区中每个节点的初始相对位置。实例:该题是leetcode的中等题,思路不复杂,先创建两个链表less_head,more_head和两个分别指向less_head和more_head的指针less_ptr和more_ptr,当遍历链表时,当前节点的值小于x的话,les...

2020-04-12 15:27:12 111

空空如也

空空如也

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

TA关注的人

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