自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 阅读笔记-mysql innodb并发控制实现方式

参考:https://mp.weixin.qq.com/s/R3yuitWpHHGWxsUcE0qIRQ,文中例子截取自上文redo、undo、回滚段redo:主要解决如果每次修改数据都去磁盘上随机读写,效率很低。所以改为顺序写入到redo日志中然后定期去修改磁盘。即使是数据库奔溃也可以依靠redo重做。保证事务的acidundo:在事务提交之前,会将修改的旧数据存放到undo日志中,新数...

2018-10-11 23:29:55 312

转载 阅读笔记-mysql 并发控制思路

参考:https://mp.weixin.qq.com/s/R3yuitWpHHGWxsUcE0qIRQ并发控制常见的并发控制手段有:锁、数据多版本锁普通锁:操作数据前锁定数据,操作完释放,保持一致性但是简单锁太粗暴,读也无法并行共享锁:s锁,读取数据时使用。共享锁之间不互斥,可以读读并行排他锁:x锁,修改数据时添加。写读、写写不能并行。类似于:写事务没有提交,读...

2018-10-11 21:13:43 196

转载 阅读笔记-mysql myisam和innodb的五个差异

count(*)对于myisam引擎,会直接存储总行数,所以比较快;但是如果一旦添加了查询条件则统计方式和innodb相同(一行一行的扫描)所以不管用什么引擎都要建立好索引全文索引MyIsam支持,innodb在5.6后支持不过在高并发大数据的情况下都不支持使用内置的全文索引,要使用索引外置索引外置待后续了解!!!事务myisam不支持,innodb支持myisam可以...

2018-10-11 21:00:33 199

原创 链表逆序

已知一个链表,将该链表进行逆序整体思路:始终持有新链表第一个元素的索引,老链表的第一个元素始终头插到新链表class LinkedNode{ int value; LinkedNode next; public LinkedNode(int value){ this.value=value; }}public class Revers...

2018-10-10 20:27:01 280

原创 linux命令

搜索文件名:find /zookeeper-3.4.13/docs -name ‘zookeeper*’;find /zookeeper-3.4.13/docs -name ‘zookeeper*.pdf’编辑:vi ivy.xml复制:cp zkCli.sh …/删除:rm zkCli.sh搜索内容: grep “Licensed” *.xml打印出最后几行: tail -n 10 ...

2018-10-08 22:07:36 129

原创 动态规划

将问题拆分成小问题,先解决最小的问题,然后再一步步的解决大问题寻找大问题和小问题间的关系,通过小问题来求解大问题动态规划的使用条件:子问题是离散的,不存在相互依赖的关系存在一定的约束条件,求最值经典题目https://leetcode.com/problems/climbing-stairs/description/ 爬楼梯问题https://leetcode.com/p...

2018-10-06 21:02:16 130

原创 127. Word Ladder

思路题来自:https://leetcode.com/problems/word-ladder/description/经过分析:该单词转换的问题可以转变成一个图的问题,在图中寻找最小路径的问题。解题步骤:定义一个函数用来判断哪些字符串间可以相互转换 (canTransform方法),只有一个字符不相同。将题转化成一个图数据结构(临接表)使用bfs来进行搜索,寻找到出发点到目...

2018-10-05 22:41:12 368

原创 CopyOnWriteArrayList源码解析

依据jdk1.8源码分析新建创建一个零长度数组private transient volatile Object[] array;//底层数据添加数据先上同步锁对原始数组进行拷贝(浅拷贝),然后在拷贝后的数组上进行修改将修改后的结果赋值给arraypublic boolean add(E e) { final ReentrantLock lock = ...

2018-09-26 21:15:34 110

原创 网络基础

网络架构五层网络架构:物理层、链路层、网络层、传输层、应用层TCP/IP网络层的ip协议+传输层的tcp协议在网络层利用ip协议定位主机在传输层利用tcp协议进行可靠性保证tcp/ip是个协议组包括了:应用层:FTP、HTTP、TELNET、DNS、smtp(邮箱)传输层:TCP UDP网络层:IP ICMP可以用Socket实现HTTP。Socket是实现传...

2018-09-25 16:55:07 150

原创 java8 stream

Java 8 中的 Stream 是对集合(Collection)对象功能的增强。聚合操作、大批量数据操作与Lambda结合,极大的提高编程效率和程序可读性供串行和并行两种模式Stream 的另外一大特点是,数据源本身可以是无限的。流处理的一般过程:数据源(source)→ 数据转换(转换成想要的数据)→执行操作获取想要的结果常用流操作流的构成:list.stream...

2018-09-23 22:40:14 264

原创 mysql 基础知识

事务手动开启:begin rollback commit自动开启SET AUTOCOMMIT=0 禁止自动提交SET AUTOCOMMIT=1 开启自动提交delete truncatedelete按行删除,删除后会记录到日志中,可以进行事务的回滚truncate清空整个表,不会记录到日志中,不能进行事务回滚。删除的过程中不会激活与表有关的删除触发器。执行速度快。https:/...

2018-09-23 10:34:34 209

原创 mysql执行计划分析

MySQL5.6中支持这个功能,optimizer_tracecreate table test1(a int,b tinyint,c varchar(20),d int);alter table test1 add primary key (a);alter table test1 drop primary key;alter table test1 add unique key (b,...

2018-09-20 23:16:34 613

原创 mysql 方法和存储过程

变量局部变量:declare:|用户可以使用DECLARE关键字来定义变量。然后可以为变量赋值。这些变量的作用范围是BEGIN…END程序段中用户变量:@变量名:eg:@a 定义用户变量,作用域在整个链接会话变量:在每次连接成功后会将全局变量拷贝一份到当前回话:set session var_name = value; show variables like “autocommit”;...

2018-09-20 22:53:20 364

原创 mysql分区、分表、分库、数据分片

当读压力很大的时候,可以考虑添加Slave机器的分式解决(读写分离、一主多备),但是当Slave机器达到一定的数量就得考虑分库了。当写压力很大的时候,就必须得进行分库操作(分表分库)。分区将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。分区表水平分区:通过某个属性列来分割。eg:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中...

2018-09-19 15:15:38 4111

原创 mysql 分区表

mysql分区将一个表分解成多个表来进行多磁盘存放,不过这个分解对应用来说是透明的相比单磁盘可以存储更多数据在进行查询的时候可以只查询必要的分区,对于sum() count()可以并行执行对于过期数据可以直接整个分区删除,效率高多个磁盘获取更大的吞吐量partition key:分区键,按照特定的键分区。如果表有主键唯一键,则分区键只能在这些中选;否则随意同一个分区表的所有分区...

2018-09-18 22:27:55 138

原创 java-数据类型

基础数据类型int在64位或者32位jvm中都是32位short、char都是16位int和Integerint和Integer可以通过自动的拆箱装箱进行转换 Integer a=1; int b=a+1; Integer比int占内存,Integer时一个对象,需要存储对象的元数据String、StringBuilder、StringBuffer...

2018-09-17 13:04:19 138

原创 java HashMap

HashMapHashMap底层是使用数组+链表的形式进行存储,数组作为主干,链表作为hash冲突后的解决方案。加入数据的时候会用hashCode()和特定的算法算出对应的位置,如果对应的位置上已经有值,则通过equal()比较,如果不同则放入到链表中。每一对值都是一个Entry。如果容量超过阈值(容量*负载因子)将会重新创建数组,同时将老数组的数据进行拷贝(拷贝过程中会重新计算位置)...

2018-09-17 11:06:48 162

原创 java-单例设计模式

单例模式双重检验(懒汉式) 使用双重检查,提高效率,和线程安全性instance记得使用volatile instance = new Singleton()做了三件事: 给 instance 分配内存调用 Singleton 的构造函数来初始化成员变量将instance对象指向分配的内存空间(执行完这步 instance 就为非 null 了)第2步和第3步可能重排序,...

2018-09-16 22:10:44 114

原创 rpc和restful

https://www.zhihu.com/question/41609070restful接口简单、直接、开发方便。利用现成的http协议接口更加通用会携带http的请求响应头,消息臃肿,会有无用的网络开销。rpc 远程过程调用,更准确的说应该是一种协议应用,http是一种协议速度快,效率高(针对http1.1)更精简、更加保密、更加可定制可以像调...

2018-09-13 15:27:38 1585

原创 retrofic

实现解耦是retrofic的精华传统的http访问构造request创建一个线程池将request放入到线程池中获取数据后回调给上层需要自己管理线程切换,需要自己解析读取数据,解析数据成对象,切换回主线程,回调给上层。retrofic特性可以同步请求可以异步请求适配不同的适配器来处理数据可以选择不同的反序列化工具retrofit = new...

2018-09-12 22:28:26 147

原创 elastic-job

这里描述下我们项目中如何使用elastic-job在分布式环境中进行定时调度。主要功能包括:创建定时任务,激活暂停删除定时任务关键类ZjobService 维护一个 jobMap 微服务启动监听zk上 /notifyJob-start 状态变化 如果发生变化,则取最新 jobClass 和 cron启动或者暂停elastic-job上的任务 变化后更新 job...

2018-09-12 14:02:25 944

原创 java 中public protected default private

访问权限类中被public修饰的字段、方法:可以被该类的 实例、子类(无论子类和父类是否在同一个包中) 访问。 所有可见类中被protected修饰的字段、方法:可以被该类的 同一包的实例、子类(无论子类和父类是否在同一个包中) 访问。包可见同时子类可见类中被default修饰的字段、方法:可以被该类的 同一包的实例、子类(子类父类在同一个包中) 访问。包可见类中被private修饰的...

2018-09-11 20:28:59 100

原创 java基础

基础概念匿名类:对于只使用一次,不会再重复使用的类主函数:不是所有类都需要主函数,如果需要独立运行就需要定义主函数,主函数由jvm调用成员变量和局部变量: 成员变量:定义在类中;成员变量在整个对象中有效;存在在堆中的对象中,生命期和对象相同;局部变量:定义在函数中;局部变量在自己所属的大括号中有效;存在在栈中,生命期所属区域的存在而存在;一个类中多个构造函数,是重载的体现类:执行...

2018-09-11 17:17:06 96

原创 设计模式

设计模式单例设计模式使用场景:需要对象的唯一性,性能浪费太多时使用更关键的是有的类存在多个实例会存在逻辑错误,例如序号生成器例如:例如数据库链接,配置信息读取工厂模式用一个方法来代替new关键字,隐藏复杂的初始化适用场景:适用于需要父子类替换的对象(多态)jdk中:Proxy.newProxyInstance;class.newInstance();Boole...

2018-09-10 22:08:12 104

原创 finally注意事项及异常丢失

注意事项 finally和try相对应,每次try结束后都会调用相对应的finally。(除非直接System.exit()这样不会调用finally) https://blog.csdn.net/ech00o00/article/details/76474825 private static int count=0; private static void te...

2018-09-09 23:26:50 420

原创 zookeeper-编程

使用cli操作zookeeper//创建节点create /test "hello"create /test/dr1 nullcreate -s /test/index null //创建顺序节点create -s -e /test/index null //创建顺序临时节点//获取节点,设置监听get /test/dr watch //对/test/dr进行监听,只监听一次...

2018-09-09 22:47:02 240

原创 kafka(三):和storm整合保序

保证storm和kafka上的消息有序整体流程:kafka生产者->kafka消费者->spout->bolt:kafka的生产者按制定字段发送到指定主题上,保证一类消息的先后次序(如果想要所有的消息都有序,可以只用一个分区,但是这样就只能有一个消费者消费)producer = kafkaClientService.< String, String &a

2018-09-06 16:40:09 183

原创 java 内存管理

引用强引用:Person p=new Person();一般使用的都是强引用 jvm不会回收强引用如果内存不足则oom如果想切断强引用:Person p=null软引用:SoftReference 在内存不足时,抛出oom前会回收软引用.通常被用来缓存一些非必须的数据 软引用:如果内存充足,是不会回收的。如果内存不足会将较早的对象回收 Sof...

2018-09-05 14:36:24 137

原创 文档整理

storm https://blog.csdn.net/lulongzhou_llz/article/details/46433099 https://blog.csdn.net/xiaolang85/article/details/38492277 https://blog.csdn.net/xiaoshunzi111/article/details/50481084

2018-09-04 18:49:24 534

原创 mysql-优化案例

优化分页select title,content from product_comment where status=1 and product_id=1111 limit 10,5;第一步优化在status和product_id上构建联合索引 联合索引的顺序依据选择性决定select count(distinct status)/count(*),count(distinct ...

2018-09-04 15:27:24 153

原创 动态代理和静态代理

代理是一种软件设计模式,目的地希望能做到代码重用不直接访问被代理对象的方式,而访问被代理对象的方法.eg:商户—->明星经纪人(代理)—->明星这种模式使用场景之前的代码很难修改,但是需要扩展方法Spring的AOP机制静态代理代码编译时就确定了被代理的类是哪一个,那么就可以直接使用静态代理对于静态代理,代理类要实现和被代理类相同的接口说简单点...

2018-09-03 18:16:02 71

原创 数据库表设计

数据库异常由于数据库设计不合理,造成在增删改时可能出现问题插入异常:想要插入的值依赖于其他无关紧要的值。如果在无关紧要的值不插入的时候,想要插入的值无法进行插入操作更新异常:只想修改某一个数据,却不得不修改多行数据删除异常:删除某一数据的时候,不得不同时删除其他无关紧要的数据范式第一范式:表中的所有字段都不能在分解为更基本的数据单位。所有字段都是单一字段属性,使用基础字...

2018-09-03 10:37:29 188

原创 innodb索引使用

本文针对的是mysql的innodb数据引擎来谈索引分成两类:聚集索引、辅助索引 聚集索引:数据存放在聚集索引的叶子节点上,聚集索引依据主键进行顺序排序辅助索引:除聚集索引外的索引,在innodb中叶子节点上存放的是主键,可以通过主键在聚集索引上找到对应的数据 这篇文章写的相当好:https://blog.csdn.net/IFollowRivers/article/detai...

2018-09-02 22:40:30 647

原创 mysql-读懂explain

explainid:执行顺序,数字越大优先级越高select_type:每个子句的类型 simple:不包含子查询和unionPRIMARY:内部包含子查询SUBQUERY:子查询(select和where中的)DERIVED:子查询(from中的)UNION:出现在UNION后UNION RESULT:从union的表中获取结果table:来自哪张表type:在表中查询用...

2018-09-02 20:09:24 148

原创 zookeeper 概念

数据结构zk的数据结构设计成类似于文件系统树的结构zk的数据放在内存中保证了它的高效每个节点都是一个znode,既是文件也是文件夹,可以存储数据在zk的命名空间中,用path路径定义一个节点znodeznode中包含的数据 消息版本时间戳acl(Access Control List 权限列表)数据(一般数据很小1k以内)读写操作都是原子性的(要么成功要么失败...

2018-08-30 18:26:21 130

原创 storm(三) 编程关键类

Storm概念storm的编程其实就是设计topology的过程,该过程中最主要的就是Spout、bolt还有grouping关键类创建topology这个部分可以直接参考官网,使用TopologyBuilder类TopologyBuilder builder = new TopologyBuilder();builder.setSpout("create...

2018-08-28 23:50:28 162

原创 storm(一) 集群架构

storm关键概念storm不用来处理静态数据,主要用来处理动态数据storm 架构Nimbus:管理节点,用于提交Supervisor:从节点,接受来自于Nimbus节点的任务,管理Worker Worker:工作进程,具体执行业务的工作进程 Executor:工作线程,一个实际的物理线程 Spout / Bolt:计算模型节点,也叫task,多个task可能公用一...

2018-08-28 23:27:45 395

原创 java-集合

数据结构树:二叉树是一种非常常用的树形结构图数组:长度固定,可以用下标索引列表:ArrayList栈:peek(),push()和pop() ,先进后出队列:peek(),offer()和poll(), 先进先出链表:每个节点包含有数据以及指向下一个节点的引用,在双向链表里,还会有一个指向前一个节点的引用HashMap自己实现List、Set、Map大O...

2018-08-25 17:05:37 118

原创 java-io

IO主要内容File同步阻塞的输入输出流NIO多路复用、同步非阻塞的io channelSelectorBufferNIO2异步非阻塞的io(利用事件回调机制来实现)概念bit一个二进制位byte由8个bit组成你char java中是2个byte,16位流相关的概念BufferedReader的作用:是一个处理流,可以将读取到的数据放在内存中...

2018-08-23 16:33:01 86

原创 spring-mvc

mvc:数据模型model(数据的对象,和视图交互)+视图view(包含jsp、freemarker)+控制器controller (@Controller类)三层架构:展现层+应用层+数据访问层mvc只是三层架构的展现层应用层一般是Service,数据访问层一般是DAO。启用spring mvc@EnableWebMvc开启默认项:ViewResolver Messag...

2018-08-22 07:03:29 118

空空如也

空空如也

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

TA关注的人

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