Elasticsearch 的安装,运行和基本配置

2014-10-24 · 833 chars · 5 min read

距离上一篇文章已经快 2 个月了,这些天公司任务不多,自己折腾了点好玩的东西,用了下 pm2,mongodb,redis 和 elasticsearch。mongodb 和 redis 在两个月前就写过部署相关的文章了,今天扯一下 Elasticsearch。

Elasticsearch 是一个非常赞的实时分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析等。更重要的是入门简单,api 也比较清晰。根据官方的介绍,目前 Wikipedia,Github 和 StackOverflow 等都使用 Elasticsearch 进行搜索和分析。

Elasticsearch 是建立在全文搜索引擎 Apache Lucene 基础上的,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架,但是 Lucene 只是一个框架,要充分利用它的功能,你需要很高学习成本,因为 Lucene 确实非常复杂。而 Elasticsearch 使用 Lucene 作为内部引擎,在其基础上封装了功能强大的 RESTful API,让你不需要了解背后复杂的逻辑,即可完成搜索……

在异步回调中操作 redis 的一个异常

2014-09-01 · 549 chars · 3 min read

昨天在使用node redis的时候报了这样一个错:

TypeError: Object [object Object] has no method 'send_command'
    at RedisClient.(anonymous function) (D:\index.js:991:25)
    at null._onTimeout (D:\index.js:17:22)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

这个 bug 比较隐蔽,一步一步来看:

在 CentOS 下安装 nodejs

2014-08-20 · 228 chars · 2 min read

以前写过一篇在windows 下部署 nodejs 的方案,当时就看到了一个很火的方案 pm2,可惜不支持 win32 系统。这两天闲下来就安装了一个 CentOS 的虚拟机,想要尝试一番,结果安装好后一直执行 pm2 的命令,一直提示 command not found(别的有些 module 可以),折腾了半天试了各种方法都无解,最后换了一个版本的 nodejs,居然可以了….

这里简单记录下安装过程,首先:

yum install gcc openssl-devel gcc-c++ compat-gcc-34 compat-gcc-34-c++

node-webkit 开机自启动

2014-08-11 · 373 chars · 2 min read

node-webkit 没有提供开机自启动的接口,在 github 的issue里也没有找到靠谱的解决方法,不过经过一番寻觅,找到了 node 下操作注册表的方法,就是winreg(这么好的项目星星少的可怜),还有一个使用 winreg 修改注册表实现开机启动的 demo:node-start-on-windows-boot。demo 很简单,可以直接在项目里使用:

ProtoBuf.js – Protocol Buffers 的 Javascript 实现

2014-07-31 · 610 chars · 4 min read

在 Javascript 里比较常见的数据格式就是 json,xml,但是这两种格式在数据传输方面有明显不足。而 Protocol Buffers 可以很好的解决这个问题,下面引用百科的对 Protocol Buffers 的定义:

Protocol Buffers 是 Google 公司开发的一种数据描述语言,类似于 XML 能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持 C++、JAVA、Python 等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。

同为数据的存储格式,和 json 相比,Protocol Buffers 的优点主要体现在性能和体积上,性能方面需要实际的测试,暂且不说,数据体积方面的优势是比较明显的,例如,一个 json 文件:

在 windows 上部署使用 Redis

2014-07-03 · 695 chars · 4 min read

这两天在重新做公司内网首页,信息都是从别的系统获取的,产品原来打算直接上静态页,jsonp 异步取数据。但是一来 jsonp 比较坑(一直不喜欢),二来整个页面的数据都异步获取的话,刚刚打开页面的时候会空白一片,体验极其差。所以决定用 node.js + express + redis 简单搞下。今天早晨一直在折腾 Redis,看了挺多文章,可能是版本或者其他的原因,我遇到的问题他们都没有提,不过终于还是部署上了,下面把过程写下给大家参考。