- 博客(142)
- 资源 (2)
- 收藏
- 关注
原创 事务的四大特征和五个隔离级别
事务的四大特征1.原子性(Atomicity):一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做要么全不做2.一致性(Consistency):事务完成后,符合逻辑运算。数据不会因为事务的执行而遭到破坏,事务前后数据的完整性必须保持一致3.隔离性(Isolation):一个事物的执行,不受其他事务的干扰,即并发执行的事物之间互不干扰4.持久性(Durability):一个事物...
2019-08-03 21:02:45 457
原创 概念理解:TPS,QPS,响应时间,并发量和系统吞吐量
QPSQueries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPSTransactions Per Second意思是“每秒事务数”。它是软件测试结果的测量单位,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来...
2019-06-23 00:16:14 2246
原创 高并发场景下的缓存问题总结
高并发情景下的缓存问题总结缓存一致性问题为了保证缓存中的数据与数据库中的保持一致,保证缓存节点和副本中的数据也保持一致。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时候,主动更新缓存中的数据或者移除对应的缓存。缓存并发问题在高并发场景下,缓存失效后,有可能多个请求会并发的去从数据库获取数据,可能对后端数据库造成极大的冲击,甚至导致“缓存雪崩问题”。当某个缓存key在被更...
2018-09-29 23:56:12 626
原创 乐观锁和悲观锁
乐观锁对于取数据很“乐观“,每次去取数据的时候总认为不会有其他线程对数据进行修改,不会上锁。但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用version版本号机制或CAS操作实现。version版本号机制可以为行数据增加version字段,每次修改,版本号自增;取数据的时候也带着版本号。update XXX set x = x + 1, version = ...
2018-08-26 20:31:37 228
原创 分布式锁的Redis实现
分布式锁的Redis实现 分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够保证原子性和和对锁服务调用方的可见性。今天给大家分享一下最常见的一种实现:分布式锁的Redis实现。实现 最常用的一种实现方式是借助setNX方法,该方法的含义是“set...
2018-08-26 15:05:24 194
原创 一文读懂Mysql索引
Mysql索引总结定义 索引是存储引擎用于快速定位数据的一种数据结构。聚集索引 聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相同,聚集索引有着更快的检索速度。 主键可以作为聚集索引...
2018-07-01 15:29:58 476
原创 必学经典算法之——归并排序
定义归并排序是通过合并多个有序序列的排序方法,是运用分支法的典型范例。主要步骤划分:将待排序的序列划分为大小大致相等的两个子序列。治理:当子序列的规模大于1时,递归排序子序列,如果子序列规模为1则称为有序序列。组合:将两个有序序列合并为一个有序序列。时间和空间复杂度时间复杂度:O(nlogn)空间复杂度:O(n)代码实现public class MergeSort { public st...
2018-05-15 23:42:23 484
原创 必学经典算法之——堆排序
堆的定义n个元素的序列{k1,k2,k3, ... ,kn},当且仅当满足以下关系时,称之为堆。堆排序要点建堆:将n个元素建成堆。排序:输出堆顶元素后,调整剩余元素,使之成为大根堆;继续输>出堆顶,继续调整,依此类推。(一)筛选:调整堆使之成为大根堆或小根堆输出堆顶元素后,将堆底元素送入堆顶,由于根结点不满足堆的性质,此时堆被破坏,而根结点的左右子树仍然是堆。然后,将根结点与左右子树,较大或...
2018-05-15 23:28:44 356
原创 Python操作MySQL数据库以及IO操作
#!/usr/bin/python#excoding=utf-8import mysql.connector as conn;import os;import urllib.request as urllib;print (conn.__version__);config = { 'host':'172.00.0.00', 'user':'xxxxxx', ...
2018-03-29 14:39:24 377
原创 Python基础(四)
#!/usr/bin/python3#excoding:utf-8"""python函数函数是组织好的,可重复使用的,用来实现单一,或者相关功能的代码段。内建函数是语法规定存在的函数。函数代码块以def关键词开头,后面是标识符名称和圆括号,各个参数放在圆括号中间,和java类似。函数内容以冒号开始,并且缩进。return语句结束函数并可以返回一个值给调用方。"""whole...
2018-03-23 11:08:20 203
原创 Python基础(三)
#!/usr/bin/python3#excoding:utf-8# 数学math, cmath包import math;print (dir(math));print (abs(-12));print (math.cos(30));#print (cell(-12.09));print (math.pi);# 字符串举例print ("sdsd".capitalize(...
2018-03-21 21:05:39 183
转载 自旋锁与互斥锁的对比、手工实现自旋锁
本文地址:(LYanger的博客:http://blog.csdn.net/freeelinux/article/details/53695111) 本文之前,我只是对自旋锁有所了解,知道它是做什么的,但是没有去测试实现过,甚至以为自旋锁只有kernel用这个,今天才发现POSIX有提供自旋锁的接口。下面我会分析一下自旋锁,并代码实现自旋锁和互斥锁的性能对比,以及利用C++11实现自旋锁。一...
2018-03-19 13:47:11 252
原创 Python基础(二)
#!/usr/bin/python3#encoding:utf-8# python运算符:+,-,*,/,%,**(幂),//(取整除)print (2 ** 4); #8print (5 // 3); #1# 比较运算a = 1b = 2.0print (a > b);# 赋值运算符aa = 1aa += 3print (aa)aa **= 4print ...
2018-03-18 23:56:21 200
原创 Python基础(一)
#!/usr/bin/python3#encoding:utf-8# 输出print("hello python");# 保留关键字import keyword;print(keyword.kwlist);#多行注释""""""#多行注释''''''# 使用缩进来表示代码块,不用使用大括号,要求同一个代码块包含相同的缩进空格数量if False: prin...
2018-03-18 11:02:06 221
原创 POST和GET区别
结合知乎用户@杨光的见解,整理本篇文章。作者:杨光链接:https://www.zhihu.com/question/28586791/answer/145424285来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。我们通常在讨论GET vs POST的时候,实际上讨论的是specification(详述),而不是implementati
2018-01-29 13:08:56 998
原创 双栈排序
请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector<int>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。测试样例:[1,2,3,4,5]返回:[5,4,3,2,1]
2018-01-28 00:08:27 278
转载 利用EXPLAIN分析sql语句的性能
explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchom
2018-01-22 20:50:50 4661
转载 sql优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中
2018-01-22 19:48:12 207
原创 Git操作小记集合
已push操作撤回git reset --hard HEAD^git push --force创建分支需要先checkout到master分支,或者起始分支git branch -b 分支名
2018-01-17 19:00:29 181
转载 如何处理缓存失效、缓存穿透、缓存并发等问题
缓存失效: 引起这个原因的主要因素是高并发下,我们一般设定一个缓存的过期时间时,可能有一些会设置5分钟啊,10分钟这些;并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间在同一时刻,这个时候就可能引发——当过期时间到后,这些缓存同时失效,请求全部转发到DB,DB可能会压力过重。 处理方法: 一个简单方案就是将缓存失效时间分散开,不要所以缓存时间长度都
2018-01-09 13:11:43 376
原创 Maven常用插件
一、Maven插件是什么?Maven是一个执行插件的框架,每一个任务实际上是由插件完成的。比如我们的编译操作就是通过compiler插件来实现的。二、Maven插件的几个核心概念1、目标(Goals)一个插件通常提供了一组目标,一个目标是一个明确的任务,它可以作为单独的目标运行,或者作为一个大的构建的一部分和其它目标一起运行。 mvn [plugin-n
2017-10-07 19:58:41 481
转载 Linux系统下安装rz/sz命令及使用说明
对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多linux系统初始并没有这两个命令。今天,我们就简单的讲解一下如何安装和使用rz、sz命令。1.软件安装root 账号登陆后,依次执行以下命令:1cd /tmp
2017-08-13 18:16:13 251
原创 springboot配置多模块项目
用idea构建多模块spring boot项目,步骤如下:1.创建父项目,删除src,target目录,只保留pom.xml。2.配置父模块pom。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2017-07-23 10:53:50 3317
原创 mac配置mysql遇到的问题
1.命令行提示command not found和windows类似,需要配置环境变量,重新打开console,即可。2.提示需要修改默认密码执行“set password=password('密码xxxxxx');”即可修改密码。
2017-07-22 20:36:51 292
转载 List<?>,List<T>和List<E>的区别
遇到,,等,是用到了java中的泛型。 一般使用来声明类型持有者名称,自定义泛型类时,类持有者名称可以使用T(Type) 如果是容器的元素可以使用E(Element),若键值匹配可以用K(Key)和V(Value)等, 若是,则是默认是允许Object及其下的子类,也就是java的所有对象了。 所以说,如果是字每A,B,C,D...定义的,就是泛型,这里T只是名字上的意义而已T
2017-07-20 17:25:12 7082
原创 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
整合ssm框架的时候,出现SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]错误,问题的原因在于插入的数据类型和数据库的数据类型不匹配。比如:public class aa { private int id; private int nan;
2017-07-16 12:01:21 1370
原创 Type JAX-RS (REST Web Services) 2.0 requires Java 1.6 or newer
pom文件中进行如下配置: 1.8 1.8
2017-07-16 00:03:09 2659
原创 Location Type Java compiler level does not match the version of the installed Java project facet.
2017-07-15 23:56:19 271
原创 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
遇到该问题可以通过Add Library将Server Runtime库加入build path即可。
2017-07-15 16:55:59 474
原创 整合ssm框架要点
#创建maven工程GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。一般GroupID就是填com.leafive.test这样子。
2017-07-15 16:27:27 1679
原创 二分查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Find(int target, int [][] array) { for(int i = 0 ; i < array.l
2017-06-20 18:16:41 205
原创 递归二叉树的序列打印
请用递归方式实现二叉树的先序、中序和后序的遍历打印。给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
2017-06-06 09:46:05 670
原创 快速排序
import java.util.*; public class QuickSort { public int[] quickSort(int[] A, int n) { quickSortRecurrence(A, 0, n - 1); return A; } public void quickSortRecurre
2017-06-05 21:12:01 197
转载 redis持久化RDB和AOF
Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis
2017-05-26 23:35:16 236
原创 [牛客]链表分割
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。new关键字之后会创建实例对象,其他的复制都只是引用,比如new A;//建立A的对象B=A;//B是A的引用/*pu
2017-05-14 08:45:59 338
转载 mybatis 联合查询注意事项
1、一对一: association字面意思关联,这里只专门做一对一关联; property表示是com.mybatis.bean.StudentTemp中的属性名称; javaType表示该属性是什么类型对象2、类似视图查询: resultType 对应简单类型,也就是实体中的属性名称与数据库表字段名称一模一样; resultMap 对应复杂类型,属性名称与字段名
2017-05-09 10:37:56 441
原创 Parameter 'id' not found. Available parameters are [0, 1, 2, param3, param1, param2]
编程时遇到如下错误Parameter 'id' not found. Available parameters are [0, 1, 2, param3, param1, param2]修改前的DAO层方法如下 List selectLatestQuestions(int userId, int offset,int limit);添加了@Param("XXX")之后解决了问
2017-05-09 08:51:30 21668 2
原创 SpringBoot + Mybatis实体类属性与数据库表列名对应规则
原本是将实体类属性名和数据库表列名保持一致,但是部分列返回null,这些列类似于这种user_name在实体类中应该按照如下方式命名属性名数据库表列:user_name实体类属性:userName
2017-05-08 11:25:00 12542 3
原创 There is no getter for property named 'str' in 'class java.lang.String'
mybatis开发时报错:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'str' in 'class java.lang.String'问题出在判断这行 WHERE phone_md5 = #{str}
2017-05-07 20:57:21 442
转载 Spring MVC中拦截器HandlerInterceptorAdapter中的preHandle方法
拦截器:顾名思义,就是对请求进行拦截,做一些预处理、后处理或返回处理的操作 Spring MVC中使用拦截器的方法,继承HandlerInterceptorAdapter类,并根据需求实现其中的preHandle方法(预处理)、postHandle方法(返回处理),afterCompletion方法(后处理)。public boolean preHandle(HttpServletRe
2017-05-01 22:06:39 7696
DiskFileItemFactory需要的jar包commons-fileupload-1.3.jar和commons-io-1.2.jar
2016-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人