September 28, 2010
基于Web的IM概览
"基于 WEB 的实时事件通知方式大致有五种方案:HTTP拉取方式(pull),HTTP流,Long Polling,Flash XMLSocket方式,Java Applet。 首先说下Comet这个词,Comet 这个词是最早由Alex Russell(Dojo Toolkit 的项目 Lead)提出的,称基于 HTTP 长连接、无须在浏览器端安装插件的“服务器推(Push)”技术为“Comet”。 1.HTTP拉取方式(pull) 在这种传统的方法中,客户端以用户可定义的时间间隔去检查服务器上的最新数据。这种拉取方式的频率要足够高才能保证很高的数据精确度,但高频率可能会导致多余的检查,从而导致较高的网络流量。而另一方面,低频率则会导致错过更新的数据。理想地,拉取的时间间隔应该等于服务器状态改变的速度。常见的实现如利用 “” tag,当然利用xmlHttpRequest定时取也是一种方法。 2.HTTP流(Push机制)\nHTTP流有两种形式:\nPage Stream: 页面上不间断的HTTP连接响应(HTTP 1.1 Keep Alive). 通过在 HTML 页面里嵌入一个隐蔵 …"
September 28, 2010
从零开始,安装运行Pushlets所需的Servlet相关环境
"最近在研究基于WEB的聊天程序,了解了长连接相关技术,从网上看了很多文章,但多数是英文的,这让我很头疼。我准备自己动手测试一下网上的开源comet框架,最后我选择的是pushlet,先将我的一些操作步骤写下来和大家一起分享。\n我先去 pushlet官方网站 下载了相关代码,我选择的是5-feb-2010: v2.0.4 released版本的(下载地址:)。下载了后我解压打开相关文件,里面只有几个文件夹和文件,找了一下,DOC文件夹里面有说明文档,打开index.html,是英文的。按照左侧导航大概浏览一下,最后跳到install上面,硬着头皮打开浏览一下,大概意思是需要Servlet引擎环境。于是开始在Google上面找相关的文章。看了一下大概意思明白,就是需要安装Tomcat。\n去Tomcat官方网站下载,我下载的是Tomcat 7.0.2 Released版本的(下载地址:)。下载解压出来是一个没有扩展名的文件:apache-tomcat-7.0.2-windows-x86,想到Windows下面的文件应该是EXE的,我将其扩展名改为exe运行,结果闪了一个命令窗口就没有了,在文 …"
September 26, 2010
Comet—“服务器推”技术
"一、名称解释: Comet最早是由Alex Russell(Dojo Toolkit 项目主管和Dojo Foundation主席)在自己的博客中提出的术语,他是这样说的:”New services like Jot Live and Meebo are built with a style of data transmission that is neither traditional nor Ajax. Their brand of low-latency data transfer to the browser is unique, and it is becoming ever-more common. Lacking a better term, I’ve taken to calling this style of event-driven, server-push data streaming “Comet”.” “They all use long-lived HTTP connections to reduce the latency with which …"
September 26, 2010
centos 5.4 下面安装mongodb服务端和php客户端扩展…
"一、安装服务端\n1.下载MongoDB\n我下载的是1.6的版本\n2.解压并把解压包bin目录中的文件全部移到/usr/local/bin目录下面\n3.运行mongo的服务器端程序\n/usr/local/bin/mongod –port \u0026lt;端口\u0026gt; –bind_ip \u0026lt;本机IP\u0026gt; –dbpath \u0026lt;数据库文件存放的位置\u0026gt;\n如果要求开机就启动就在\n/usr/local/etc/rc.local中加入下面一行内容\nusr/local/bin/mongod –port \u0026lt;端口\u0026gt; –bind_ip \u0026lt;本机IP\u0026gt; –dbpath \u0026lt;数据库文件存放的位置\u0026gt; \u0026gt;/dev/null \u0026amp;\n4.测试安装是否成功\n运行指令\n#/usr/local/bin/mongo –port 4312 –host 127.0.0.1\n显示\nMongoDB shell version: 1.6.0\nconnecting to: 127.0.0.1:4312/test\nhelp\ndb.help() help on db methods …"
September 26, 2010
MongoDB 快速入门及windows平台下的mongodb安装教程
"官方教程(for windows):\n对 MongoDb 文档数据库感兴趣,要安装认识下。\n到官方下载 win 版 http://www.mongodb.org/display/DOCS/Downloads 目前最新稳定版是 1.2.4。解压到 f:/sofr/mongodb-win32-i386-1.2.4。\n1.启动 mongod 服务端\nF:\\soft\\mongodb\u0026gt;bin\\mongod.exe –dbpath=f:/mongodb Mon Mar 08 11:13:17 Mongo DB : starting : pid = 0 port = 27017 dbpath = f:/mongodb master = 0 slave = 0 32-bit\n** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data ** see http://blog.mongodb.org/post/137788967/32-bit-limitations for more\nMon Mar …"
September 26, 2010
PHP操作MongoDB
"一、MongoDB简介\nMongoDB (名称来自”humongous”) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点: http://www.mongodb.org/,MongoDB特点:\n面向文档存储(类JSON数据模式简单而强大) 动态查询 全索引支持,扩展到内部对象和内嵌数组 查询记录分析 快速,就地更新 高效存储二进制大对象 (比如照片和视频) 复制和故障切换支持 Auto-Sharding自动分片支持云级扩展性 MapReduce 支持复杂聚合 商业支持,培训和咨询 二、安装MongoDB\n安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址: http://www.mongodb.org/downloads,本文为windows平台,MongoDB运行命令:\u0026gt;bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:datadb),当然你也可以修改成不同目录,只需要指定 –dbpath 参数,eg: …"
September 26, 2010
NoSQL数据库探讨之一 - 为什么要用非关系数据库?
"随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:\n1、High performance – 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。\n2、Huge Storage – 对海量数据的高效率存储和访问的需求 类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户 …"
September 26, 2010
MongoDB 介绍,安装
"这是MongoDB的系列学习笔记的第一篇,主要介绍什么是非关系型数据库MongoDB,如何下载,去哪儿下载,又该怎么正确的安装等一系列问题。\n一、前言 最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下。本人不才,借着自学的机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论。部分资源出自其他博客,旨将零散知识点集中到一起,如果有侵犯您的权利,请联系li-pan2@163.com。大部分内容均系原创,欢迎大家转载分享,但转载的同时别忘了注明作者和原文链接哦。\n二、MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。 小插曲:什么是NoSql?\nNoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、 …"
September 25, 2010
Linux下使用screen工作How-to
"通过ssh在Linux终端下工作,有一个很烦的事情就是,如果需要执行一个长时间的命令(例如拷贝一个大文件,或者做DDL)时,如果终端意外断开(网络或者别的原因),一般命令就会终止,当然你可以使用nohup命令,这里提供另一个办法:使用screen。\n一般,我们创建一个screen会话,然后连接会话并在会话下工作,这时候,我们可以随时挂起会话,去做别的事情,而且这个挂起的会话会一直在后台执行。而后又可以重新连接会话。下面是一个简单的How-to:\nHow-to 1.1 创建一个screen会话\nscreen -dmS supu\n该命令,创建一个名为supu的会话,当时并不立刻进入会话。\n1.2 连入会话\nscreen -r supu\n连入会话后,就可以做任何想做的工作了。\n1.3 挂起该终端\n如果你在会话中,做了某个需要等很久的操作,或者你需要离开一段时间,这时就需要执行挂起操作了:\n(ctrl+a) + D 先按下Ctr+a然后按D键(screen捕获ctrl+a,后面跟一个命令键D,可以通过ctrl+a ?查看更多)\n1.4 其他相关\n而后,可以重新使用-r参数回到会话;在会话中, …"