NodeJS系列~第三個小例子,NodeJs與Redis實現高並發的隊列存儲


返回目錄

眾所周知

redis量個強大的緩存組件,可以部署在win32和linux環境之上,它有五大存儲結構,其中有一種為列表list,它可以實現quene和stack的功能,即隊列和堆棧的功能。

redis相關文章,可以看我的相關博文《Redis學習筆記~目錄》,redis實現消息隊列,可以看我的《Redis實現消息隊列比MSMQ更方便》

node-redis-client相關下載地址為:https://github.com/fictorial/redis-node-client

說一下它們工作流程:

node之前

client->IIS/apache服務器->2M Thread->redis server(windows/linux)

node之后

client->Node.JS(event driven)->redis server(windows/linux)

我們可以看到,nodeJS出現之后,我們在與redis通訊時,不走原來的那種線程機制,而是走事件驅動,原來的IO瓶頸沒有了,原來8G內存支持4000個並發量,現在不存在了,看到了這些信息,我想,對於高並發模塊,咱們沒有理由不使用nodeJS作為http服務器了吧,呵呵。

說干就干(下載地址

首先找到\redis-node-client-master\examples目錄,運行命令node publisher.js

這時打開你的redis服務redis-server,我們用的是windows版的

這時,你的redis-server將到監視到由node.js發過來的數據,如圖

下面我們再來看一下通過客戶端訪問node.js進行redis存儲的過程

 如果你的電腦處於聯網狀態,那么安裝可以把redis-node以npm模塊的形式安裝到node中,以后在引用時直接使用require("redis")就可以了,不需要寫相對路徑了,呵呵,安裝它的方法如下:

npm install redis
npm install hiredis redis

這時,如果安裝成功,就可以做實例了,呵呵!注意,我們的npm install redis這種安裝模塊的命令,是把模塊安裝到當前目錄的,即你的工作項目如果需要redis,需要在工作項目中進行安裝,如果你的工作項目目錄是c:\noderedis,那么安裝模塊后,你的目

錄會多一個node_modules文件夾,如圖:

安裝的過程如圖:

下面我們寫一個實例,用來向redis服務器發set和hset串,然后再把redis服務器里所有的鍵名都讀出來

 
var redis = require("redis");
var client = redis.createClient();

client.on("error", function (err) {
    console.log("Error " + err);
});

client.set("string key", "string val", redis.print);
client.hset("hash key", "hashtest 1", "some value", redis.print);
client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
client.hkeys("hash key", function (err, replies) {
    console.log(replies.length + " replies:");
    replies.forEach(function (reply, i) {
        console.log("    " + i + ": " + reply);
    });
    client.quit();
});

運行結果如下:

 OK,這說明,我們的redis-node客戶端已經和redis服務器可以正常通訊了,呵呵,下一講中,我們將學習,通過客戶端向node發post請求,將數據包通過node發到redis,敬請期待!

 返回目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM