`
jamie.wang
  • 浏览: 347704 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
文章列表
MongoDB初探 简介 MongoDB是开源的基于文档的数据库系统,存储基于BSON(类似JSON)的文档,支持复杂的数据结构,支持全部的索引,且提供了强大的查询接口,提供了良好的水平扩展支持,可以存储海量数据,被认为是mysql的替代品。 安装 MongoDB有针对CentOS的rpm安装包 加入源,由于是10gen开发的,所以源名为10gen, # vi /etc/yum.repos.d/10gen.repo,加入: [10gen]name=10gen Repositorybaseurl=http://downloads-distro.mongodb.org/repo/re ...
  我的电脑装了两个系统,一个win7一个ubuntu,而文件和一些java的软件(如maven,groovy等)则可以共享,因此将共享的软件和文件放在一个FAT32格式的盘中(NTFS在Linux下不容易识别)。然后在ubuntu下挂载这个磁盘。 1. 首先要找到未挂载的磁盘: 写道 $ sudo fdisk -l[sudo] password for hai: Disk /dev/sda: 120.0 GB, 120034123776 bytes255 heads, 63 sectors/track, 14593 cylinders, total 234441648 secto ...
java.util.concurrent包中的ThreadPoolExecutor,提供了java语言的线程池,你可以提交一个返回结果的任务(submit(Callable),返回Future),或者执行一个不返回结果的任务(execute(Runnable)),但提交的任务可能会抛异常,这就需要处理异常: 1. 对于submit的任务,框架会将异常保持在future里,并包装在ExecutionException里,当调用Future.get()时,再次throw,这时可以调用ExecutionException.getCause()获取包装的exception,这种情况下,设置Unca ...
Spring batch是spring提供的批处理的框架,但不包括日程管理(schedule)的部分,最近项目用到,初试牛刀。   Spring Batch的核心概念 如下图,JobLancher启动job,一个job包含若干step,每个step又包含一个ItemReader(读数据),ItemProcessor(处理数据),和ItemWriter(输出数据),job的元数据和运行状态则存储在JobRepository中。   Job运行时概念 Job的一次完整运行称为一个JobInstance,由JobParameter区分(Spring认为相同的Job不应该多次运行),即如 ...

Java 线程

1. 后台线程(Daemon) 调用setDaemon(boolean),可以设置线程为后台线程。 java的前台线程未退出,主进程不会退出。Thread.start()后,启动它的线程不会block,会继续执行下面的代码。可以调用Thread.join(),等待该线程结束。 java的后 ...
mysql jdbc默认把select的所有结果全部取回,放到内存中,如果是要遍历很大的表,则可能把内存撑爆。 一种办法是:用limit,offset,但这样你会发现取数据的越来越慢,原因是设置了offset,mysql需要将读取位置移动到offset的位置,随着offset增大,取数据也越来越慢; 另外一种办法是:用数据流的方式取数据,这时需要设置: stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONL ...
由于在HTTP协议中,服务器是出于被动的位置,浏览器(客户端)发起HTTP请求从服务端获取数据。但web2.0时代的一些web应用,则需要及时更新服务端的信息,(例如:票务,航班信息,股票信息等),还有一些情况下需要客户端和服务端实现一种异步通信的机制(比如:客户端提交一个耗时的请求,服务端处理完成后,通知客户端)。HTML5提供了WebSocket,客户端和服务端可以建立一个双工的通信通道,相互发送数据。Server Send Event(SSE)是一种简单的浏览器实现的轮询,并可以指定事件类型,事件id等。而由于HTML5出于draft阶段,并且浏览器支持的程度相差较大,因此现在很多是通 ...
最近用python写一个导数据的脚本,发现两个python的问题,新手可能容易出错。   1. dict默认参数 看代码:   >>> def test(d={}): ... print d ... d['z'] = 'z' >>> test({'a':'a'}) {'a': 'a'} >>> >>> test() {} >>> test() {'z': 'z'}  发现函数体内对默认参数的复制,会影响下一次的调用。   解决办法一:不用空的 ...
FNV哈希算法是一种高离散性的哈希算法,特别适用于哈希非常相似的字符串,例如:URL,IP,主机名,文件名等。 该算法实现简单,特别适合互联网行业。 但该算法也有几个缺点 1. 不适用于加密,因为其执行效率高,容易攻击; 2. 由于hash结果是按位异或和乘积的,如果任何一步出现0,则结果可能会造成冲突;   FVN哈希算法支持多种位的哈希算法,下面是一个32位FVN哈希算法的实现: class FNV32Hash { private static final long OFFSET_BASIS = 2166136261L;// 32位offset basis ...
#!/bin/bash # This script run at 00:00 # 00 00 * * * log_daily.sh # The Nginx logs path LOG_PATH="/usr/local/nginx/logs" for log in `ls $LOG_PATH`; do echo $log | grep '.log$' > /dev/null if [ $? -eq 0 ];then NEW_LOG_FILE_PATH=$LOG_PATH/${log}_`date -d yester ...
Spring提供了事件机制,实现了观察者模式,可以让事件发布者和事件监听者解耦,事件发布者可以发布时间而不需要知道谁会监听,如果实现了异步事件还不会影响主流业务逻辑。   Spring的事件机制,最常用在系统状态监测,系统日志等不影响主线业务的逻辑处理。   例子:   登录事件   import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.springframework.context.ApplicationEvent; public clas ...
该文章部分内容转自:http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html   nginx接受一些信号来实现服务器的重启,重新加载配置项等。   nginx的主进程号会保存在nginx.pid文件中,默认在var/nginx.pid 下面的命令的$nginx_pid都是主进程号   优雅退出 kill -QUIT $nginx_pid   快速退出 kill -TERM $nginx_pid   重新加载配置 kill -HUP $nginx_pid 或者 /usr/nginx/sbin/n ...
1. 查询数据库占用的空间 SELECT round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2) as data_size_in_MB FROM information_schema.TABLES where TABLE_SCHEMA='schema_name';   2. 查看某个表 SELECT round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024/1024,2) as data_size_in_GB ...
最近写了个python脚本,在服务器上运行,经常莫名其妙的退出,也不知道原因,后面查了资料得到下面两个方法去捕捉退出的发生,一个是捕捉kill信号,另一个是注册atexit函数 例子:   import os import sys import time import atexit import signal import traceback def term_sig_handler(signum, frame): print 'catched singal: %d' % signum sys.exit() @atexit.register de ...
java和php对等的3DES加密算法,ECB的加密模式没有CBC安全,iv是初始向量相当于种子。 参考文章:http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html   package org.jamie.demo; import java.security.NoSuchAlgorithmException; import java.security.Security; import java.util.Random; import javax.crypto.Cipher; import javax ...
Global site tag (gtag.js) - Google Analytics