摘要:
一、键值设计 1、key名设计 1) 可读性和可管理性: 以业务名或数据库名为前缀,以防key冲突,用冒号分隔,比如业务名:表名:ID 2)简洁性: 保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视。 3)不包含特殊字符: 包含空格、换行、单双引号以及其他转义字符 2、valu 阅读全文
摘要:
user nobody; worker_processes 2; events{ worker_connections 1024; } http{ #设置默认类型为二进制流 default_type application/octet-stream; server_na... 阅读全文
摘要:
转载篇 1、重复代码 即使是一两句代码的重复也需要重构,有时候重复不是那么明显,可能需要首先进行其他的重构才能看到代码重复。 2、长方法 用面向过程的思路来写干面向对象的活,即使可以在一页内能够显示的方法也可能过长 3、大类 一个类含有太多的责任和行为,违背了单一性的原则 4、参数太多 参数过多,可 阅读全文
摘要:
通常来说,查询的生命周期大致可以按照顺序来看从客户端到服务端,然后在服务器上进行解析,生产执行计划, 执行,并返回结果给客户端。其中的执行阶段可以认为是整个生命周期中最重要的阶段,其中包括了大量为了检索 数据到存储引擎的调用以及调用后的数据处理,包括排序、分组等。 在完成这些任务的时候,查询需要在不 阅读全文
摘要:
事务 1、定义:所有操作必须成功完成,否则在每个操作中所作的所有更改都会备撤销。 2、事务的ACID 原子性atomicity 一致性consistency 隔离性isolation 持续性durability 2-1、原子性: 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 2 阅读全文
摘要:
MySQL数据库常见的两个瓶颈是CPU和I/O。 CPU在饱和的情况下一般发生在数据装入内存或者从磁盘上读取数据的时候,当装入的数据远大于 内存容量的时候,这时可能会发生I/O瓶颈, 如果是分布式应用的话,当查询量大的时候瓶颈可能会出现在网络上。 我们可以采用常用的Linux 命令来查看系统的性能状 阅读全文
摘要:
springMVC执行步骤: 1、用户发送请求到前端控制器,前端控制器根据请求信息来决定选择页面控制器,并将请求委托给它 2、页面控制器收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,并进行验证,然后将命令对象委托给业务对象 处理;处理完后返回一个ModelAndView(模型数据和 阅读全文
摘要:
定义:在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。类似发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息 四种角色:抽象被观察者角色 抽象观察者角色 具体被观察者角色 具体观察者角色 小Demo走一波 1、定义Obs 阅读全文
摘要:
NIO,一种基于通道和缓冲区的I/O方式,可以使用native函数库直接分配堆外内存,然后通过一个存储在java 堆的DirectBteBuffer对象作为这块内存的引用进行操作,避免了再java堆和native堆中来回复制数据。 NIO是一种同步非阻塞的IO模型。同步是指线程不断轮询IO事件是否就 阅读全文