摘要: 本文介绍了解决Redis数据库响应延迟问题的方法,将有助于你找出Redis 响应延迟的问题所在。
阅读全文
posted @
2014-07-22 17:11 zhangxl 阅读(1825) |
评论 (0) |
编辑 收藏
摘要: 豁达是正确乐观的面对失败的系统。不需要过多的担心,需要一种去说那又怎样的能力。因此架构的设计是如此的重要。许多优秀的系统没有进一步成长的能力,我们应该做的是使用其他的系统去共同分担工作。 Redis是 其中一
阅读全文
posted @
2014-07-22 15:27 zhangxl 阅读(375) |
评论 (0) |
编辑 收藏
摘要: 在redis服务器中的分区主要包含两个目标:
通过利用多台计算机内存的和值,允许我们构造更大的数据库。
通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络带宽。
阅读全文
posted @
2014-07-14 12:17 zhangxl 阅读(647) |
评论 (1) |
编辑 收藏
摘要: 为什么我设置的索引不能生效,设置索引应该注意些什么,关于mysql的索引,有哪些细节。本篇文章能告诉你一些知识点。
阅读全文
posted @
2014-05-08 19:48 zhangxl 阅读(2016) |
评论 (4) |
编辑 收藏
摘要: 二叉树是数据结构世界中具有重要地位的一种数据结构。它同时具备有序数组和链表的优点,同时又弥补了有序数组插入数据、链表查找的缺点。同时也是各种面试中常见的问题。现通过java实现二叉树,加深对二叉树的理解。
阅读全文
posted @
2014-04-18 18:34 zhangxl 阅读(328) |
评论 (0) |
编辑 收藏
摘要:
阅读全文
posted @
2013-06-09 18:07 zhangxl 阅读(229) |
评论 (0) |
编辑 收藏
摘要: 对于MongoDB collection下的文档而言,在文件大于16MB时,我们应该使用GridFS。在一些解决方案中,使用MongoDB的GridFS存储大文件,比使用系统级别的文件系统更便利。当文件系统的目录对文件数量有限制时,你应该使用GridFS来存储需要的尽可能多的文件;
阅读全文
posted @
2013-04-09 18:41 zhangxl 阅读(498) |
评论 (0) |
编辑 收藏
摘要: 本文在内网linux环境下构建Mongodb主从复制
阅读全文
posted @
2013-04-02 19:15 zhangxl 阅读(313) |
评论 (0) |
编辑 收藏
语法
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
参数
option 参数是单一的,紧跟在命令后面。
pid 要被映射的进程。必须是java进程。用jps可以获得java进程列表
executable 产生核心转储的可执行java代码
core 要被映射的核心文件
remote-hostname-or-IP 远程调试服务器的域名或者ip地址(看jsadebugd)
server-id 可选唯一id,如果多个服务器运行在同一个远程主机
描述
是复制共享对象的内存映射、给定进程的堆内存、核心文件、远程调试服务器。如果给定的进程是再64的VM,你需要制定参数,例如:
jmap -J-d64 -heap pid
注意:这个工具在未来的JDK里可能不支持或者不出现。在windows系统里没有dbgeng.dll, 需要安装'Debugging Tools for Windows'来运行这些工具。同时PATH环境变量必须包含被目标进程或者崩溃导出文件位置锁使用的jvm.dll路径。例如:
set PATH=\jre\bin\client;%PATH%
OPTIONS
<no option> 当没有选项,jmap复制共享对象映射。目标虚拟机中的每一个分享对象、开始地址、映射大小、完整路径被复制。这类似于Solaris中的pmap工具。
-dump:[live,]format=b,file=<filename> 把java堆导出成hprof二进制格式文件。live子选项是可选的。如果指定,只有堆中的活对象被导出。浏览堆镜像,你可以使用jhat。
-finalizerinfo 复制正在等待回收的对象信息
-heap 复制一个堆得概要。使用的GC算法堆配置,使用代的大小。
-histo[:live] 复制一个堆得柱状图。每个Java类,对象个数,内存大小(byte),类全路径。VM的内部类用*为前缀。如果live子选项被指定,只有活对象被计数。
-permstat 打印堆中永生代的类加载器的宽泛统计。每个加载器的名字,活性,地址,父加载器,它加载的类的大小。另外,驻留字符串的大小和数量。
-F 强制。使用jmap -dump 或者 jmap -histo 选项时,如果pid没有响应。在这个模式下live子选项不支持。
-h 帮助
-help 帮助
-J<flag> java虚拟机选项
posted @
2013-03-18 17:32 zhangxl 阅读(1098) |
评论 (0) |
编辑 收藏
摘要: 使用java的人都知道,如果覆盖了Object的equals方法,那么必须要覆盖hashCode方法,并且如果两个对象用equals方法比较返回true,那么这两个对象hashCode返回的值也必须是相等的,并且对于同一个对象,equals方法需要比较的属性值没有被修改,那么每次调用hashCode返回的值应该是一致的。 &nb...
阅读全文
posted @
2012-08-16 18:39 zhangxl 阅读(415) |
评论 (0) |
编辑 收藏
摘要: 学习如何在windows下安装mongo
阅读全文
posted @
2012-05-25 23:58 zhangxl 阅读(367) |
评论 (0) |
编辑 收藏
摘要: 京东碰到的一道面试题
阅读全文
posted @
2012-02-15 15:12 zhangxl 阅读(1313) |
评论 (1) |
编辑 收藏
摘要: HashMap内部有一个Entry数组,可以称之为hash table。HashMap的默认构造值为初始容量为16,负载因子为0.75,阀值(初始容量*负载因子)为12。其默认构造子如下:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH...
阅读全文
posted @
2012-02-13 14:42 zhangxl 阅读(411) |
评论 (0) |
编辑 收藏
摘要: 12个小球其中有一个是次品,不过不知道轻重,请问用天平能用三次测量的机会找出那个次品吗?
阅读全文
posted @
2012-02-10 17:04 zhangxl 阅读(1635) |
评论 (0) |
编辑 收藏
摘要: java nio 实现 Ping命令行
阅读全文
posted @
2012-02-07 16:53 zhangxl 阅读(890) |
评论 (0) |
编辑 收藏
摘要: AbstractApplicationContext继承于DefaultResourceLoader,因此AbstractApplicationContext也具备了资源加载的功能。同时ApplicationContext扩展了ResourcePatternResolver接口,所以ApplicationContext的实现类对外表现的Loader应该为ResourcePatternResolver。通俗来讲,就是说容器具备资源模式解释的功能,并能对一资源位置进行加载
阅读全文
posted @
2012-02-07 11:57 zhangxl 阅读(503) |
评论 (0) |
编辑 收藏
摘要: Spring框架提供基于依赖注入的IOC容器,完成对象的构造、依赖注入、对象声明周期维护等功能,下面将以FileSystemXmlApplicationContext为例来分析Spring IOC容器的实现。
阅读全文
posted @
2012-02-07 11:10 zhangxl 阅读(710) |
评论 (0) |
编辑 收藏
在JDBC3.0中(JDK4.0),引入了一个新特性Savepoint。我们知道,在JDBC2.0中的事务支持让开发者可以控制对数据的并发访问,从而保证数据的一致性。但有时候我们需要对事务多一点的控制,而不是在当前的事务中简单地对每一个改变进行回滚。在 JDBC 3.0 下,我们可以通过 Savepoint 获得这种控制。 Savepoint 接口允许您将事务分割为各个逻辑断点,以控制有多少事务需要回滚。下图将说明如何在事务中运用 Savepoint。
JDBC下使用Savepoint
示例代码:
conn.setAutoCommit(false);
// Set a conservative transaction isolation level.
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
Statement stmt = conn.createStatement();
int rows = stmt.executeUpdate( "INSERT INTO authors " +
'(first_name, last_name) VALUES " +
'('Lewis', 'Carroll')");
// Set a named savepoint.
Savepoint svpt = conn.setSavepoint("NewAuthor");
//
rows = stmt.executeUpdate( "UPDATE authors set type = 'fiction' " +
"WHERE last_name = 'Carroll'");
//
conn.rollback(svpt);
//
// The author has been added, but not updated.
conn.commit();
示例结果就是,insert语句将被执行,update语句未执行,其被回滚了。
Hibernate下使用Savepoint
示例:
Session s = sf.openSession();
Transaction tx = s.beginTransaction();
User u1 = new User();u1.setId(1);u1.setName("u1");
s.save(u1);
Savepoint savepoint1 = s.connection().setSavepoint();
User u2 = new User();u2.setId(2);u2.setName("u2");
s.save(u2);
s.flush();
s.connection().rollback(savepoint1);
//s.connection().releaseSavepoint(savepoint1);
tx.commit();
Spring对Savepoint的支持
posted @
2012-01-30 11:36 zhangxl 阅读(2521) |
评论 (0) |
编辑 收藏