- 博客(44)
- 资源 (4)
- 收藏
- 关注
原创 Redis 实现分布式锁注解 及 Redission应用
使用 Redis 实现分布式锁注解(Redission)写在前面本文使用 Redission 实现的分布式锁,通过注解的方式应用,避免了对业务代码的侵入。重要文件解释AnnotationResolver.java : 注解解析器,参考了注解实现aop、aop动态传参、使用注解aop优化代码的文章实现,可以在注解上取得参数变量DistributedLock.java : 声明注解DistributedLockAop.java : 分布式锁实现RedissionConfig.java : Red
2020-06-26 16:49:35 1344
原创 k8s 常用命令
说明:以下使用<>都为变量实时查看podkubectl get pods --watchkubectl get pods --watch --namespace=<namespace> //查询该命令空间下的pod查询pod的详情kubectl describe pods <service-name>进入podkubectl exec -i -t -it deployment/<service-name> /bin/bash.
2021-03-27 17:21:06 393
原创 Mysql 授权命令
授权命令:grant all privileges on dbname.* to username@'%' identified by 'password';flush privileges;ps:在授权时想对某个用户赋权限里要先创建数据库的 create database dbname;dbname: 授权的数据库名username:你的用户名password: 你的密码查看权限select user,db,host,select_priv,insert_priv,update_pri
2021-03-16 10:35:56 831
原创 Mysql5.7 解决 ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘
5.7版本与5.6版本的user表的区别MySQL5.7中mysql.user表比MySQL5.6少了1个字段(Password)MySQL5.7中mysql.user表比MySQL5.6多了3个字段(password_last_changed,password_lifetime,account_locked)5.7 修改用户表的密码update mysql.user set authentication_string=password('yourpassword') where user='r
2021-03-16 09:56:46 851
原创 Mysql 在原来的字符串上拼接字符串
例子(生成的svg 忘记在前缀):update user set avatar=CONCAT('data:image/png;base64',avatar_path) where 1=1
2020-12-25 14:29:08 638
原创 解决 Mysql[HY000][1366] Incorrect string value:...
[HY000][1366] Incorrect string value: '\xE9\x9D\x91\xE5\xB9\xB1...' for column 'xxx' at row 40修改字符集为utf8mb4表的编码格式show create table <表名>;alter database <数据库名> character set utf8mb4;修改数据表格编码格式alter table <表名> character set utf8mb4;修
2020-12-25 12:04:05 2222
原创 Mysql 设置字段唯一性sql
ALTER TABLE table ADD UNIQUE (field);ALTER TABLE table ADD UNIQUE (field1,field2);
2020-12-25 11:58:47 1020
原创 Mysql 各种系统当前时间获取(日期,时间戳[秒/毫秒])
SELECTTIME_TO_SEC(NOW()),NOW(),current_timestamp(),unix_timestamp(now()),REPLACE(unix_timestamp(current_timestamp(3)),'.','');结果如下
2020-12-25 11:56:50 1396
原创 [解决] feign.FeignException$NotFound: status 404
请检查是否配置了contextPath,如果是的话在@FeignClient里配置pathserver: servlet: context-path: /path如下@FeignClient(name = "service-name",path = "/path")
2020-10-08 18:27:14 2109 1
原创 [解决]Lock wait timeout exceeded; try restarting transaction MYSQL行锁怎么破?
问题更新某条数据时出现以下错误,就一直阻塞在那里,直到timeout,出现以下错误[40001][1205] Lock wait timeout exceeded; try restarting transaction由此可见遇见锁啦,怎么破?唯有解锁。解决看看自己有哪条sql正在waiting 什么的,在那给卡住的。show processlist ;如果这样看不出来。使用当前运行的所有事务SELECT * FROM information_schema.INNODB_TRX;当前出
2020-09-25 18:16:46 1856
原创 国内ubuntu 下超简单安装docker!
使用官方安装脚本自动安装 使用aliyun镜像源(仅适用于公网环境)curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun出现以上这个,说明已经安装完成运行下docker ps,出现下面这个说明你没有权限,要用sudo 运行才行。原因是因为你没有在该组上,所以用下面方法解决。上图也告诉你要怎么做了sudo usermod -aG docker ${USER}其中,${USER} 是获取当前用户的用户名。然后重
2020-09-10 18:38:52 460
原创 在不退出vim的情况下使用sudo完成写入
问题有时候我们操作linux,编辑一些系统文件时是需要sudo操作的,但是经常忘记使用`sudo `,直接就是vim 打开某个文件,当进行改动时出现以下情况,就要退出,重新用sudo vim 打开文件操作。解决我们如何在不退出的情况下完成编写呢?输入:w ! sudo tee %,然后出现下面的显示内容,按o 再回车就可以了。最后强制退出:q!最后用cat 输入内容检查下,就会发现刚刚的内容已经写入了。附加:w ! sudo tee %的意思是:w! {cmd} 让vim 可以执行
2020-08-30 17:45:32 711
原创 你知道 @Autowird、@Resource和构造器注入的区别么?
写在前面相信很多同学一直用的是@Autowired, 另外也都知道都能用,但是也不知道有啥子区别。结论先说结论: 推荐用构造器方式,简单粗暴的原因人家Spring4.x版本中推荐的写法。区别@Autowired这位兄弟是根据type装配哒。默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。它是spring的产物.@Resource而这位老兄呢,是jdk的产物。是按name来装配的,但也可以通过type来装配。@Resource装配顺序如
2020-08-16 14:58:31 2382 5
原创 Mysql 使用 in 查询, 如何保证查出来顺序与传入的条件顺序保持一致?
如下sql,我们可能会理所当然的以为输出的顺序是以我们输入的5,9,3 的顺序输出数据,然而并不是,输出是按数据库存的顺序输出,而我们一般存就是按照id递增存,所以输出也会顺序的:select * from table where id in (5,9,3)如果想要进行按传入条件顺序输出的话,可以使用order by (field, data...) ,如上转化出来应如下:select * from table where id in (5,9,3) order by (id,5,9,3)输出就会
2020-08-12 14:30:29 3235 4
原创 Linux下快速安装 Harbor,必成!
cd 到你想安装的目录下离线下wget https://github.com/goharbor/harbor/releases/download/v2.0.1/harbor-offline-installer-v2.0.1.tgz在线下wget https://github.com/goharbor/harbor/releases/download/v2.0.1/harbor-online-installer-v2.0.1.tgz解压tar -zxvf harbor-online-install
2020-08-11 18:01:28 367
原创 国内下载 docker-compose 亲测可用
想必你已试过github下载了。github下载太慢,用daocloudsudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-uname -s-uname -m-o /usr/local/bin/docker-compose给权限sudo chmod +x /usr/local/bin/docker-compose验证下docker-compose --version.
2020-08-11 17:49:31 723
原创 ubuntu 安装 zsh/ohmyzsh
安装zshsudo apt install zsh安装oh-my-zshcurl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh设置主题cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc设置为默认shellchsh -s /bin/zsh
2020-08-10 22:30:55 169
原创 解决 Warning: Failed to set locale category LC_NUMERIC to en_CN.
在配置文件里加export LC_ALL=en_US.UTF-8 即可用bash 就在~/.bash_profile里加用zsh就在~/.zshrc里加最后source一个配置文件source ~/.bash_profile 或 source ~/.zshrc
2020-08-10 22:24:26 348
原创 AOP 实现请求参数和结果记录
写在前面AOP应用-请求日志记录我们在写 web 项目时,请求内容日志记录对我们来说很重要,特别是出问题的要排查时,传的什么参数,返回内容都是我们排查的依据,那我们不可能每个controller上的每一个方法都打印log,对原有业务代码有侵入性,代码也冗余和繁琐。此时AOP就起到了重要作用。可以对业务无任何侵入。而本文实现用的@Around,如单词意思是围绕,就是包围着业务代码。那我们就可以在业务执行前获取请求参数打印,执行完成着结果打印,就实现我们的功能了。代码建一个LogTraceHandler
2020-06-26 20:00:46 1036
原创 Spring cache 整合 Redis 实战代码
实践步骤pom.xml 引入 redis相关包在 application 类里加上@EnableAsync注解redisconfig中加入 @Bean public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { return RedisCacheManager.create(redisConnectionFactory); } /** 原因: *
2020-06-25 14:37:12 202
原创 Leetcode208. 实现Trie(前缀树)[Med] -JAVA
题目传送门@[TOC](Leetcode208. 实现Trie(前缀树)[Med] -JAVA)题目实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); //
2020-06-24 09:10:24 116
原创 Leetcode1014. 最佳观光组合[Med] -JAVA
题目传送门Leetcode1014. 最佳观光组合[Med] -JAVA题目思路解法枚举题目给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例:输入:[8,1,5,2,6]输出:11解释:i = 0, j = 2, A[i] + A[j] + i - j = 8
2020-06-17 18:11:37 200
原创 Leetcode452. 用最少数的箭引爆气球[Med] -JAVA
题目传送门Leetcode452. 用最少数的箭引爆气球[Med] -JAVA题目思路解法题目在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤x ≤ xend,则该气球会被
2020-06-11 13:00:53 202
原创 Leetcode739. 每日温度[Med] -JAVA
题目传送门Leetcode739. 每日温度[Med] -JAVA题目思路解法暴力单调栈题目根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是
2020-06-11 12:46:56 169
原创 Leetcode面试题29. 顺时针打印矩阵[Easy] -JAVA
面试题29. 顺时针打印矩阵https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,1
2020-06-10 09:42:02 170
原创 Leetcode406. 根据身高重建队列[Med] -JAVA
题目传送门Leetcode406根据身高重建队列[Med] -JAVA题目思路解法贪心算法题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]思路k是排
2020-06-09 14:08:32 693
原创 Leetcode238. 除自身以外数组的乘积[Med] -JAVA
题目传送门Leetcode238. 除自身以外数组的乘积[Med] -JAVA题目思路解法左右乘积列表题目给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时
2020-06-04 23:56:46 239
原创 Leetcode面试题64. 求1+2+…+n[Med] -JAVA
题目传送门Leetcode面试题64. 求1+2+…+n[Med] -JAVA题目思路解法短路法题目思路求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000解法短路法例:A&&B ,当A 等于false时,B不会执行,则B被短路A||B 当
2020-06-02 19:42:55 157
原创 Leetcode145 二叉树的后序遍历[Hard] -JAVA
题目传送门Leetcode145 二叉树的后序遍历[Hard] -JAVA题目思路解法递归迭代题目给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?Related Topics 栈 树思路后序遍历:左-右-中题目也说了递归很简单,使用一个DFS(深度优先遍历),分别按左右中,加到结果列表里。我相信你也可以写得出来。那么如何用迭代实现呢?什么是迭
2020-05-30 20:42:06 158
原创 Leetcode141 环形链表[Easy] -JAVA
题目传送门Leetcode141 环形链表[Easy] -JAVA题目思路解法题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。思路判断链接是否有环,使用Floyd判圈算法。使用双指针,一慢一快,慢的每次走一步,快的每次走两步,当有
2020-05-27 21:57:09 156
原创 Leetcode103 二叉树的锯齿形层次遍历[Med] -JAVA
题目传送门Leetcode103 二叉树的锯齿形层次遍历[Med] -JAVA题目思路解法题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3/ 9 20/ 15 7返回锯齿形层次遍历如下:[[3],[20,9],[15,7]]Related Topics 栈 树 广度优先搜索思路题意就是用中序遍历实现,将左边的节点全部
2020-05-26 18:47:58 130
原创 Leetcode897 递增顺序查找树[Easy] -JAVA
题目传送门Leetcode897 递增顺序查找树[Easy] -JAVA题目思路解法题目给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。示例 :输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9输出:[1,null,2,nu
2020-05-25 23:37:46 137
原创 Leetcode146 LRU缓存机制[Med] -JAVA
题目传送门Leetcode146 LRU缓存机制[Med] -JAVA题目思路解法题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数
2020-05-25 23:37:26 143
原创 Leetcode240 搜索二维矩阵 II[Med] -JAVA
题目传送门240. 搜索二维矩阵 II[Mid] -JAVA题目思路解法题目编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 2
2020-05-21 22:28:17 136
原创 Leetcode25 K 个一组翻转链表 [Hard] -JAVA
题目传送门Leetcode25. K 个一组翻转链表[Hard] -JAVA题目思路解法题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4-
2020-05-17 19:01:40 174
原创 Leetcode541 反转字符串 II [Easy] -JAVA
题目传送门Leetcode541. 反转字符串 II -JAVA题目思路解法双指针题目给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = “abcdefg”, k = 2输出: “bacdfeg”思路首先考虑到String 是不可变得,我们转化为数组,原地交换就可以了。如何交换?
2020-05-15 22:21:38 498
原创 Leetcode136 只出现一次的数字 [Easy] - JAVA
题目传送门Leetcode. 136. 只出现一次的数字- JAVA题目解法位运算(异或^)思路代码题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1解法位运算(异或^)思路位运算:(异或)如果a、b两个值...
2020-05-02 08:45:00 160
原创 Leetcode面试题 16.17. 连续数列 - JAVA
题目传送门Leetcode. 面试题 16.17. 连续数列 - JAVA题目解法动态规划(DP)思路代码题目给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解法动态规划(DP)思路用一个数组来存储每次每个位置的最大值,每个位...
2020-04-26 19:26:02 388
原创 Leetcode199 二叉树的右视图 - JAVA
题目传送门Leetcode.199 二叉树的右视图 - JAVA题目解法BFS 解法思路代码题目给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <---...
2020-04-23 00:05:35 303
原创 Leetcode200 岛屿数量 - JAVA
题目传送门Leetcode200 岛屿数量 - JAVA题目思路DFS 解法题目给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围示例 1:输入:1 1 1 1 01 1 0 1 01 1 0 0 00 ...
2020-04-20 22:39:20 189
用于tcp通讯的客户端与服务器端的exe
2017-09-26
基于jsp的新闻发布系统
2016-12-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人