B树(B-树)、B+树、B*树

2016-1-25 diaba 数据结构

B树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;   &nbs...

阅读全文>>

标签:

评论(0) 浏览(1959)

Mysql存储引擎MyISAM和InnoDB对比

2016-1-25 diaba Mysql

mysql的MyISAM和InnoDB两个存储引擎的索引实现方式: MyISAM引擎使用B+ Tree作为索引结构,叶节点存放的是数据记录的地址。 MyISAM引擎的辅助索引(二级索引)和主索引在结构上没有区别,只是辅助索引的key可以重复,叶节点上存放的也是数据记录的地址。 MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。 InnoDB中表数据本身就是按B+ Tree组织的一个索引结构,叶节点存放的就不是数据记录的地址,而是完整的数据记录。所以InnoDB这种存储方式,又称为聚集索引,使得按主键的...

阅读全文>>

标签: myiasm innodb

评论(1) 浏览(2277)

三种基本存储引擎

2016-1-25 diaba Mysql

哈希存储引擎     是哈希表的持久化实现,支持增删改及随机读取操作,但是不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)要快,如果不需要有序的遍历数据,那么哈希表就是your Mr.Right。 B树存储引擎     是B树的持久化实现。不仅支持单条记录的增删查改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关数据库。 LSM树(Log-Structured Merge Tree)...

阅读全文>>

标签: 存储引擎

评论(0) 浏览(2821)

JVM内存区域的划分

2016-1-20 diaba Java

    java程序通过JVM(java虚拟机)来执行的,JVM包含:加载字节码的Class Loader、执行java程序的执行引擎、存储程序执行过程中用到的数据和相关信息的运行时数据区。     平时说的java内存管理就是对运行时数据区的管理,包含分配和回收内存空间。下面详细说明运行时数据区的区域划分。     运行时数据区包含:程序计数器、方法区、java堆、java栈、本地方法栈。     1.程序计数器 程序计数器(Pr...

阅读全文>>

标签: jvm结构

评论(0) 浏览(1876)

Linux环境安装Kafka消息队列系统

2016-1-11 diaba Kafka

原文:http://czj4451.iteye.com/blog/2041096 1. 简介  kafka (官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。    i. 消息的发布(publish)称作producer,消息的订阅(subscribe)称作consumer,中间的存储阵列称作broker。  ii. 多个broker协同合作,producer、consumer和broker三者之间通过zookeeper来协调请求和转发。 ...

阅读全文>>

标签: kafka

评论(0) 浏览(2233)

分布式系统保证数据一致性的事务机制

2016-1-7 diaba 分布式

分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制 1.分布式事务XA XA是分布式事务的规范,定义了事务管理器和资源管理器之间的接口。XA接口是双向的,在事务管理器和资源管理器之间形成通信桥梁。事务管理器控制着全局事务,管理事务的生命周期,协调资源。资源管理器负责控制和管理实际资源(e.g. 数据库或JMS队列) 2.JTA 定义了java事务规范,具体实现由供应商负责提供 3.两阶段提交 a)准备阶段  b)提交阶段  两阶段保证分布式事务原子性,要么全做,要么全部做。 准备阶段 事务管理器(事务协调者)给...

阅读全文>>

标签: 分布式一致性

评论(0) 浏览(2490)

分布式数据存储-数据sharding实现

2016-1-6 diaba 分布式

在DAO层、ORM框架层、JDBC API层、DAO与JDBC之间的spring数据访问层、应用与数据库之间代理层实现数据库sharding优缺点分析: 1.DAO层     优点:不受ORM框架制约,实现起来比较简单、易于根据业务特点进行灵活定制、无需解析SQL和路由规则匹配性能会稍微好些     缺点:技术有一定门槛,工作量比依靠框架要大(用框架有学习成本),不通用,只能在特定系统中使用 2.ORM框架层     两个方向:在实现O-R Map...

阅读全文>>

标签: sharding

评论(0) 浏览(2552)

Redis—常见参数配置

2016-1-6 diaba Nosql

Redis的以下常见参数设置都是通过对redis.conf文件进行修改来完成的。  本文主要介绍了设置访问密码、主从配置、设置数据和日志目录、以及参数调优等方面。    一. 权限设置:   1. 修改redis.conf文件: Shell代码 requirepass passstring   2. 客户端登录,需要先进行授权操作,提供密码即可。 Shell代码 auth...

阅读全文>>

标签: 配置 调优

评论(1) 浏览(2867)

Redis设计与实现——RDB和AOF持久化区别

2016-1-6 diaba Nosql

原文:http://blog.csdn.net/jackpk/article/details/30073097 aof,rdb是两种 redis持久化的机制。用于crash后,redis的恢复。 rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。 save, shutdown, slave 命令会触发这个操作。 粒度比较大,如果save, shutdown, slave 之前crash了,则中间的操作没办法恢复。 ao...

阅读全文>>

标签: RDB AOF

评论(0) 浏览(1902)

Redis设计与实现——常用命令

2016-1-6 diaba Nosql

    Redis提供了丰富的命令,允许我们连接客户端对其进行直接操作.这里简单介绍一下作为常用的一些命令,包括对字符串、列表、集合、有序集合、哈希表的操作,以及一些其他常用命令。 【 基本操作】 1. 添加记录:通常用于设置字符串(string)类型,或者整数类型;如果key已经存在,则覆盖其对应的值。 Shell代码   set name Jam...

阅读全文>>

标签: redis 命令

评论(0) 浏览(1742)

Java文件压缩操作

2016-1-5 diaba 基础

原文:http://hello-nick-xu.iteye.com/blog/2002613      在web开发过程中,进行文件的压缩传输是一种常见的需求。比如一种场景:用户需要下载定时生成的报表,我们需要先对报表文件进行压以方便用户的下载,并减少文件的存储空间。      事实上,JDK已经提供了文件压缩/解压缩的支持,可以生成zip/gzip的压缩格式,并且支持支持“校验和”以检查压缩文件的完整性。通常会使用CRC(循环冗余校验)算法进行校验。      遗憾的是,JDK...

阅读全文>>

标签: java文件压缩

评论(0) 浏览(2682)

Java加密解密下篇【包括MD5、BASE64、DES、RSA等算法】

2016-1-5 diaba 基础

原文:http://hello-nick-xu.iteye.com/blog/2103781 在上一篇博客中已经简要的介绍了MD5、BASE64、DES、RSA等算法在Java中的具体应用。现在可以考虑对这些代码封装成一个工具类EncryptUtil,然后再补充一下Commons Codec对BASE64的扩展支持!   <一>. EncryptUtil工具类:  1. 使用commons-logging记录异常日志。  2. 提取常量字段、公共字段。  3...

阅读全文>>

标签: 加密 解密

评论(0) 浏览(2391)

Java加密解密上篇【包括MD5、BASE64、DES、RSA等算法】

2016-1-5 diaba 基础

原文 http://hello-nick-xu.iteye.com/blog/2103775  搞Java的攻城狮应该比较欣喜若狂的,不仅Sun公司的JDK提供了庞大的类库,而且还有众多的开源组织和个人不断地丰富着Java的生态系统。没错的,诸如MD5、BASE64、DES、RSA等经典加密解密算法,JDK都有提供专门的API来封装相关操作。程序猿只需要了解算法的思想,以及学习如何使用API即可。当然,针对BASE64算法,JDK仅仅提供了非常标准的实现,在某些场景下无法满足应用需求。在最后一部分,将学习Apache提供的Commons C...

阅读全文>>

标签: 加密 解密

评论(0) 浏览(2041)

MySQL 数据库引擎

2016-1-4 diaba Mysql

    MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)。     注意:不同的版本支持的引擎是有差异的。当然,也能使用MySQL++来创建自己的数据库引擎,具体操作可以参照MySQL++ API帮助来实现。     下面逐一叙述这5种引擎各自的特性:     ISAM     ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被...

阅读全文>>

标签: mysql 数据库引擎

评论(0) 浏览(1805)

2016年

2016-1-2 diaba 随笔记录

2016年开始,希望一切安好!

阅读全文>>

标签: 2016

评论(0) 浏览(1859)

发布&订阅的消息系统 Kafka的深度解析

2015-12-29 diaba Kafka

发布&订阅的消息系统 Kafka的深度解析 2015-01-27 10:25 Jason Guo Jason Guo的博客 字号:T | T 一个典型的kafka集群中包含若干producer(可以是web前端产生的page view,或者是服务器日志,系统CPU、memory等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干consumer group,以及一个Zookeeper集群。Kafka通过Zookee...

阅读全文>>

标签: kafka

评论(0) 浏览(2254)

Kafka各个组件介绍

2015-12-29 diaba Kafka

Kafka组件介绍 Broker     Kafka集群包含一个或多个服务器,这种服务器被称为broker Topic     每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处) Partition  &nbs...

阅读全文>>

标签: kafka

评论(0) 浏览(2089)

JVM服务参数调优实战

2015-12-27 diaba JVM

大型网站服务器案例 承受海量访问的动态Web应用 服务器配置:8 core CPU, 8G MEM, JDK 1.6.X 参数方案: -server -Xmx3550m -Xms3550m -Xmn1256m -Xss128k -XX:SurvivorRatio=6 -XX:MaxPermSize=256m -XX:ParallelGCThreads=8 -XX:MaxTenuringThreshold=0 -XX:+UseConcMarkSweepGC 调优说明: -Xmx&...

阅读全文>>

标签: jvm

评论(0) 浏览(2490)

垃圾回收器选择及jvm参数介绍

2015-12-27 diaba JVM

垃圾回收器选择 JVM给出了3种选择:串行收集器、并行收集器、并发收集器。串行收集器只适用于小数据量的情况,所以生产环境的选择主要是并行收集器和并发收集器。 默认情况下JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行智能判断。 串行收集器 -XX:+UseSerialGC:设置串行收集器。 并行收集器(吞吐量优先) -XX:+UseParallelGC:设置为并行收集器。此配置仅对年轻代有效。即年轻代使用并行收集,而年老代...

阅读全文>>

标签: gc

评论(0) 浏览(1949)

JVM参数说明

2015-12-27 diaba JVM

-Xmx3550m:设置JVM最大堆内存为3550M。 -Xms3550m:设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。需要注意的是:当这个值被设置的较大(例如>2MB)时将会在很大程度上降低系统的性能。 ...

阅读全文>>

标签: jvm参数

评论(0) 浏览(2355)

Powered by emlog 京ICP备15045175号-1 Copyright © 2022