<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yiihsia的学习阵地]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Java2King</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Java2King]]></copyright><item><title><![CDATA[博客搬家了]]></title><link>https://blog.csdn.net/Java2King/article/details/6021950</link><guid>https://blog.csdn.net/Java2King/article/details/6021950</guid><author>Java2King</author><pubDate>Fri, 19 Nov 2010 16:47:00 +0800</pubDate><description><![CDATA[<br />新博客地址：http://www.yiihsia.com/   以后都会在那上面发帖子，欢迎访问<br /> <br />目前主要发些关于nosql、分布式架构、搜索引擎、海量数据处理等方面的帖子。<br /> <br />点击进入：yiihsia[互联网后端技术]  ]]></description><category></category></item><item><title><![CDATA[微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨]]></title><link>https://blog.csdn.net/Java2King/article/details/6010250</link><guid>https://blog.csdn.net/Java2King/article/details/6010250</guid><author>Java2King</author><pubDate>Mon, 15 Nov 2010 15:20:00 +0800</pubDate><description><![CDATA[<br /><br />微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨<br />     [文章作者：孙立 链接：http://www.cnblogs.com/sunli/ 更新时间：2010-08-24]<br />     sns系统，微博系统都应用到了feed（每条微博或者sns里的新鲜事等我们称作feed）系统，不管是twitter.com或者国内的新浪微博，人人网等，在各种技术社区，技术大会上都在分享自己的feed架构，也就是推拉模式（timyang上次也分享了]]></description><category></category></item><item><title><![CDATA[Tokyo Tyrant参数优化]]></title><link>https://blog.csdn.net/Java2King/article/details/6009690</link><guid>https://blog.csdn.net/Java2King/article/details/6009690</guid><author>Java2King</author><pubDate>Mon, 15 Nov 2010 11:34:00 +0800</pubDate><description><![CDATA[<br />文章作者：孙立  链接：http://www.cnblogs.com/sunli/  启动参数介绍    ttserver命令可以启动一个数据库实例。因为数据库已经实现了Tokyo Cabinet的抽象API,所以可以在启动的时候指定数据库的配置类型。<br />支持的数据库类型有：内存hash数据库内存tree数据库hash数据库B+ tree数据库，  命令通过下面的格式来使用，‘dbname’制定数据库名，如果省略，则被视作内存hash数据库。ttserver [-host name] []]></description><category></category></item><item><title><![CDATA[Paxos算法]]></title><link>https://blog.csdn.net/Java2King/article/details/6001940</link><guid>https://blog.csdn.net/Java2King/article/details/6001940</guid><author>Java2King</author><pubDate>Thu, 11 Nov 2010 10:11:00 +0800</pubDate><description><![CDATA[<br /><br />Paxos算法是莱斯利·兰伯特（Leslie Lamport，就是 LaTeX 中的"La"，此人现在在微软研究院）于1990年提出的一种基于消息传递的一致性算法。[1] 这个算法被认为是类似算法中最有效的。<br />Paxos 算法解决的问题是一个分布式系统如何就某个值（决议）达成一致。一个典型的场景是，在一个分布式数据库系统中，如果各节点的初始状态一致，每个节点都执行相同的操作序列，那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列，需要在每一条指令上执行一个「]]></description><category></category></item><item><title><![CDATA[1GB 的4字节整数，内存排序时间为多少？]]></title><link>https://blog.csdn.net/Java2King/article/details/6001908</link><guid>https://blog.csdn.net/Java2King/article/details/6001908</guid><author>Java2King</author><pubDate>Thu, 11 Nov 2010 09:59:00 +0800</pubDate><description><![CDATA[<br />      拿到这个问题，我们往往会计算CPU运算次数，如快排的运算次数为1.4 * N * log(N)，其中1.4为快排的系数，再根据CPU的运算频率计算出排序耗时。不过这种方法很土也不是很准，Jeff Dean告诉我们可以这样估算：排序时间 = 比较时间（分支预测错误） + 内存访问时间。快排过程中会发生大量的分支预测错误，所以比较次数为2^28 * log (2^28) ≈ 2^33，其中约1/2的比较会发生分支预测错误，所以比较时间为1/2 * 2 ^ 32 * 5ns = 21s，另]]></description><category></category></item><item><title><![CDATA[TokyoTyrant的管理工具tcrmgr使用小记]]></title><link>https://blog.csdn.net/Java2King/article/details/6000177</link><guid>https://blog.csdn.net/Java2King/article/details/6000177</guid><author>Java2King</author><pubDate>Wed, 10 Nov 2010 14:43:00 +0800</pubDate><description><![CDATA[<br />申明：本文转自 liunx.cnblogs.com, 感谢原作者 <br /><br /><br />1.先启动一个测试用的ttserver <br />注意使用的所有路径都是绝对路径 <br />ttserver -host 192.168.0.100 -port 20000 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog/ -log $(pwd)/temp/test.log -pid $(pwd)/temp/test.pid -sid 9 $(pwd)]]></description><category></category></item><item><title><![CDATA[大量小文件的实时同步方案]]></title><link>https://blog.csdn.net/Java2King/article/details/5997866</link><guid>https://blog.csdn.net/Java2King/article/details/5997866</guid><author>Java2King</author><pubDate>Tue, 09 Nov 2010 16:37:00 +0800</pubDate><description><![CDATA[传统的文件同步方案有rsync(单向) 和 unison(双向)等，它们需要扫描所有文件后进行比对，差量传输。如果文件数量达到了百万甚至千万量级，扫描所有文件将非常耗时。而且正在发生变化的往往是其中很少的一部分，这是非常低效的方式。之前看了Amazon的Dynamo的设计文档，它们每个节点的数据是通过Hash Tree来实现同步，既有通过日志来同步的软实时特点(msyql, bdb等)，也可以保证最终数据的一致性(rsync, unison等)。Hash Tree的大体思路是将所有数据存储成树状结构，每个节]]></description><category></category></item><item><title><![CDATA[linux修改系统环境变量]]></title><link>https://blog.csdn.net/Java2King/article/details/5989145</link><guid>https://blog.csdn.net/Java2King/article/details/5989145</guid><author>Java2King</author><pubDate>Fri, 05 Nov 2010 10:44:00 +0800</pubDate><description><![CDATA[<br /><br />1、总结背景<br /><br />在linux系统下，如果你下载并安装了应用程序，很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内，找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题，而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。<br /><br />2、变量简介<br /><br />Linux是一个多用户的操作系统。每个用户登录系]]></description><category></category></item><item><title><![CDATA[SQL语句的解析方法]]></title><link>https://blog.csdn.net/Java2King/article/details/5984925</link><guid>https://blog.csdn.net/Java2King/article/details/5984925</guid><author>Java2King</author><pubDate>Wed, 03 Nov 2010 15:27:00 +0800</pubDate><description><![CDATA[<br /> <br />　数据是程序处理的主要内容，它一般存储在关系型数据库中，要操作它们最终必须要通过SQL语句来完成，因此，解读分析和处理SQL语句成为程序员的基本工作内容之一，当然有时这项任务是比较乏味的，如果让计算机来完成一些基本的分析解读工作如找出SQL语句涉及了哪些表，字段和条件等，可以帮助程序员解放出部分精力，投入到更有挑战性和复杂性的任务中去，本文将就如何解析单句SQL语句提出自己的解决方案和大家探讨，希望大家不吝批评指正。<br />　　首先说明以下单句SQL的范畴,它是指不存在嵌套的S]]></description><category></category></item><item><title><![CDATA[JSON — Java与JSON数据互转]]></title><link>https://blog.csdn.net/Java2King/article/details/5982608</link><guid>https://blog.csdn.net/Java2King/article/details/5982608</guid><author>Java2King</author><pubDate>Tue, 02 Nov 2010 17:24:00 +0800</pubDate><description><![CDATA[转换时Bean所要求的：被转换的Bean必需是public的。Bean被转换的属性一定要有对应的get方法，且一定要是public的。Bean中不能用引用自身的this的属性，否则运行时出现et.sf.json.JSONException: There is a cycle in the hierarchy!异常json-lib包转换时，不能以null为键名，否则运行报net.sf.json.JSONException:java.lang.NullPointerException:JSON keys mus]]></description><category></category></item><item><title><![CDATA[redis的内存陷阱]]></title><link>https://blog.csdn.net/Java2King/article/details/5974426</link><guid>https://blog.csdn.net/Java2King/article/details/5974426</guid><author>Java2King</author><pubDate>Fri, 29 Oct 2010 15:46:00 +0800</pubDate><description><![CDATA[整天发些转来的帖子, 自己总结太少了. 把我前段时间redis的让我头疼的地方写一下，因为这个原因本来用redis的数据被迁到tokyoCabinet上。redis是个对内存依赖性很强的NoSql数据库，在内存足够的情况下性能出色如果只有一台机子去部署redis，一定要特别小心。比如我有台24G的服务器，理所当然我会将大量内存分配给redis。比如20G的内存， 问题来了， 当你对redis插入数据后，redis会异步将数据dump到硬盘中想起来很完美，问题是它会fork一个进程，并占去同样大小的内存，你需]]></description><category></category></item><item><title><![CDATA[Java中多态的实现机制]]></title><link>https://blog.csdn.net/Java2King/article/details/5974343</link><guid>https://blog.csdn.net/Java2King/article/details/5974343</guid><author>Java2King</author><pubDate>Fri, 29 Oct 2010 15:20:00 +0800</pubDate><description><![CDATA[<br /> <br />多态性是面向对象程序设计代码重用的一个重要机制，我们曾不只一次的提到Java多态性。在Java运行时多态性：继承和接口的实现一文中，我们曾详细介绍了Java实现运行时多态性的动态方法调度；今天我们再次深入Java核心，一起学习Java中多态性的实现。<br />“polymorphism(多态）”一词来自希腊语，意为“多种形式”。多数Java程序员把多态看作对象的一种能力，使其能调用正确的方法版本。尽管如此，这种面向实现的观点导致了多态的神奇功能，胜于仅仅把多态看成纯粹的概念。<b]]></description><category></category></item><item><title><![CDATA[在shell脚本里使用sftp批量上传文件]]></title><link>https://blog.csdn.net/Java2King/article/details/5973538</link><guid>https://blog.csdn.net/Java2King/article/details/5973538</guid><author>Java2King</author><pubDate>Fri, 29 Oct 2010 10:43:00 +0800</pubDate><description><![CDATA[<br /><br />如何在shell脚本里使用sftp批量传送文件<br /><br /><br />主要步骤如下:<br />1.为运行shell脚本的本地用户生成密钥对<br />2.将其中的公钥分发到sftp欲登录的远程服务器上<br />3.编写并以上面的本地用户运行shell脚本<br />一.生成密钥对<br />在shell脚本中使用sftp时必须用到密钥对(公钥和私钥).可使用下列方式生成(SSH 2.X版<br />本),这里本地用户记为:local_user:<br />$ ssh-]]></description><category></category></item><item><title><![CDATA[10款相似图片搜索引擎]]></title><link>https://blog.csdn.net/Java2King/article/details/5970065</link><guid>https://blog.csdn.net/Java2King/article/details/5970065</guid><author>Java2King</author><pubDate>Wed, 27 Oct 2010 20:15:00 +0800</pubDate><description><![CDATA[<br /><br />很多时候不知道该使用什么样的关键词来搜索自己想要的图片，却经常这样“我想要张这样的图片。”传统图片搜索引擎很难这样的需求，相似图片搜索引擎应运而生。<br />1. Picitup<br />一个相似图片搜索引擎, 很简单, 输入关键词搜索, 似乎没什么好说的. 但它的搜索过程真的是让人觉得非常专业, 比如我输入”android”进行图片搜索, 可以在搜索结果页通过”面部”, “风景”, “产品”和”颜色”来进行过滤.在过滤后的图片搜索结果页面又可以通过点击某张图片下面的”Simil]]></description><category></category></item><item><title><![CDATA[用Nohup命令让Linux下的程序在后台执行]]></title><link>https://blog.csdn.net/Java2King/article/details/5968696</link><guid>https://blog.csdn.net/Java2King/article/details/5968696</guid><author>Java2King</author><pubDate>Wed, 27 Oct 2010 10:59:00 +0800</pubDate><description><![CDATA[<br /><br /> Unix/Linux下一般想让某个程序在后台运行，很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台：<br />　　/usr/local/mysql/bin/mysqld_safe –user=mysql &<br />　　但是我们很多程序并不象mysqld一样可以做成守护进程，可能我们的程序只是普通程序而已，一般这种程序即使使用 & 结尾，如果终端关闭，那么程序也会被关闭。为了能够后台运行，我们需要使用nohup这个命令，比如我们有个start.sh需]]></description><category></category></item><item><title><![CDATA[Linux Shell变量的使用]]></title><link>https://blog.csdn.net/Java2King/article/details/5966606</link><guid>https://blog.csdn.net/Java2King/article/details/5966606</guid><author>Java2King</author><pubDate>Tue, 26 Oct 2010 14:03:00 +0800</pubDate><description><![CDATA[一、本地变量的使用
本地变量就如同局部变量一样，只在本SHELL中起作用。它不会影响到其他SHELL中的变量。1。显示变量值可以使用echo命令。需要注意的是，使用变量的时候必须在变量名前加上$符号2。清除变量使用unset命令可以清除命令。3。显示所有本地SHELL变量SHELL中预定义了一些环境变量。要想显示这些命令，可以使用set命令。另外，用户自己已经定义过的本地变量也会在其中显示。4。测试变量是否已经赋值${variable:-value}如果变量已经赋值，则使用该变量值。如果变量为空，则使用v]]></description><category></category></item><item><title><![CDATA[解决linux打开文件数1024限制的解决办法]]></title><link>https://blog.csdn.net/Java2King/article/details/5952131</link><guid>https://blog.csdn.net/Java2King/article/details/5952131</guid><author>Java2King</author><pubDate>Tue, 19 Oct 2010 20:27:00 +0800</pubDate><description><![CDATA[今天启动jboss时突然报了 open files limit...原来linux默认的文件描述符1024(ulimit -a命令查看)被用光了修改ulimit文件描述符打开/etc/security/limits.conf 添加下面两行* soft nofile 65536* hard nofile 65536想所有用户生效的话换成 * ，设置的数值与硬件配置有关，别设置太大了。]]></description><category></category></item><item><title><![CDATA[linux磁盘IO查看(iostat)]]></title><link>https://blog.csdn.net/Java2King/article/details/5948208</link><guid>https://blog.csdn.net/Java2King/article/details/5948208</guid><author>Java2King</author><pubDate>Mon, 18 Oct 2010 10:44:00 +0800</pubDate><description><![CDATA[<br />##############<br />#<br />#    操作<br />#<br />##############<br /># iostat -x 1 10<br />Linux 2.6.18-92.el5xen    02/03/2009<br />avg-cpu:  %user   %nice %system %iowait  %steal   %idle<br />           1.10    0.00    4.82   39.54    0.07   54.46<br]]></description><category></category></item><item><title><![CDATA[上海MYSQL大会摘要]]></title><link>https://blog.csdn.net/Java2King/article/details/5948012</link><guid>https://blog.csdn.net/Java2King/article/details/5948012</guid><author>Java2King</author><pubDate>Mon, 18 Oct 2010 09:40:00 +0800</pubDate><description><![CDATA[<br />【谭俊青：MyISAM和InnoDB的比较】MySQL存储引擎图，使用最多的是MyISAM。一般爱可生推荐InnoDB给客户。MyISAM存储构成：3个文件（tableName.frm, tableName.MYD, tableNameMYI），不支持事务，表锁。<br /> <br />【谭俊青：MyISAM和InnoDB的比较】MyISAM行存储格式 1 定长-表结构中没有变长字段，默认就是定长存储。好处（高效能，更好的恢复能力，不需整理） 2 变长-表结构如果包含varchar, varb]]></description><category></category></item><item><title><![CDATA[Tokyo Cabinet的安装，含Java版]]></title><link>https://blog.csdn.net/Java2King/article/details/5943616</link><guid>https://blog.csdn.net/Java2King/article/details/5943616</guid><author>Java2King</author><pubDate>Fri, 15 Oct 2010 16:12:00 +0800</pubDate><description><![CDATA[1、安装依赖的库需要安装bzip2和zlibzlib很简单，yum搞定：yum install zlib-devel但是yum上的bzip2似乎不符合作者推荐的版本最低要求，所以手动安装吧……wget http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz tar -xzvf bzip2-1.0.5.tar.gz cd bzip2-1.0.5 make -f Makefile-libbz2_so make install PREFIX=/usr2、编译、安装Tokyo Ca]]></description><category></category></item></channel></rss>