摘要: 一、简介 Comet技术是服务器推技术的一个总称,Comet被称为"基于HTTP长连接的服务器推技术",其具体实现方式是长轮询和流。 这两种实现方式都有一个很大的问题。请求需要在服务器上存在一段较长的时间。这使得每一个请求连接的线程一直没有释放,且一直处于空闲状态。 阻塞IO: 当一个线程调用rea 阅读全文
posted @ 2018-12-31 23:29 Chichens 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦、缺乏交互、用户体验差。 一、前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用HTML5的API,对文件上传进行渐进式增强: 1.1 传统形式 文件上传的传统形式,是使用表单元素 阅读全文
posted @ 2018-12-29 23:44 Chichens 阅读(5481) 评论(0) 推荐(0) 编辑
摘要: 索引 无论在工作中,还是在面试当中,数据库优化是一个避不开的技术点,关于数据库的优化,有如下几点: (1)优化表结构,对常用的字段和非常用的字段分开存储; (2)优化SQL,合理使用索引; (3)做数据库读写分离,减少IO压力,由于数据库对记录做了持久化至磁盘,对磁盘的IO是非常消耗性能的; (4) 阅读全文
posted @ 2018-12-29 22:37 Chichens 阅读(98) 评论(0) 推荐(0) 编辑
摘要: I/O简介 I/O问题可以说是当今web应用中所面临的的主要问题之一,大部分的web应用系统的瓶颈都是I/O瓶颈。这个系列主要介绍JAVA的I/O类库基本架构、磁盘I/O工作机制、网络I/O工作机制以及NIO的工作方式。 BIO(Block IO)和Nio(Non-Block IO)的对比 从1.4 阅读全文
posted @ 2018-12-28 17:19 Chichens 阅读(153) 评论(0) 推荐(0) 编辑
摘要: B+Tree的定义 B+Tree是B树的变种,有着比B树更高的查询性能,来看下m阶B+Tree特征: 1、有m个子树的节点包含有m个元素(B-Tree中是m-1) 2、根节点和分支节点中不保存数据,只用于索引,所有数据都保存在叶子节点中。 3、所有分支节点和根节点都同时存在于子节点中,在子节点元素中 阅读全文
posted @ 2018-12-27 14:49 Chichens 阅读(266) 评论(0) 推荐(0) 编辑
摘要: B-Tree就是我们常说的B树。B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高。 磁盘IO与预读 磁盘读取依靠的是机械运动,分为寻道时间、旋转延迟、传输时间三个部分,这三个部分耗时相加就是一次磁盘IO的时间,大概9ms左右。这个成本是访问内存的十万倍左右;正是由于磁盘IO是非常昂贵的 阅读全文
posted @ 2018-12-27 14:45 Chichens 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 一、Mysql索引原理 索引是帮助MySQL高效获取数据的数据结构,相当于书籍的目录。目前Mysql的MyISAM和InnoDB都支持B-Tree索引,InnoDB还支持B+Tree索引,Memory还支持Hash。现在互联网应用中对数据库的使用多数都是读较多,比例可以达到 10:1。并且数据库在做 阅读全文
posted @ 2018-12-18 00:10 Chichens 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、安装单机版redis 1、可以自己去官网下载,当然也可以用课程提供的压缩包 2、使用redis-3.2.8.tar.gz(稳定版) 3、redis的生产环境启动方案 (1)redis utils目录下,有个redis_init_script脚本(2)将redis_init_script脚本拷贝到 阅读全文
posted @ 2018-10-31 23:17 Chichens 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、基础篇 JVM 堆、栈、方法区、直接内存、堆和栈区别 内存可见性、重排序、顺序一致性、volatile、锁、final 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 Java对象模型 oop-klass、对象头 即时编译器、编译优化 classLoader、类加载过程、双 阅读全文
posted @ 2018-10-27 09:27 Chichens 阅读(237) 评论(0) 推荐(0) 编辑