Node.JS平台上的數據庫Redis,MongoDB,HBASE,MySQL


 

一. MongoDB:

    因為10gen是的贊助商之一,所以MongoDB有着良好的Node.JS支持。

    a. 基本支持:,在Node.JS對MongoDB的支持有兩種常用的組件mongodb, mongoose.下面分別介紹。

     (1)基於mongodb的支持。這個for Node.JS的驅動是基於事件驅動的,所以用法基本上都是異步回調函方式。下載驅動組件$npm install -gd mongodb

     在testdb.js加入如下代碼:     

  var mongodb = require('mongodb');
  var server = new mongodb.Server("127.0.0.1", 27017, {});
  var connection = new mongodb.Db('test', server, {safe:true}).open(function (error, client) {
      if (error) throw error;

             var collection = client.collection('users');
      var test =collection.find({}, {limit:10}).toArray(function(err, docs) {
         console.dir(docs);
           });

            //insert section
        var doc1 = {id:33,name:'liuyang1'};
      var doc2 = {id:44,name:'liuyang2'};
      collection.insert([doc1,doc2],function(err,result){
              console.log(result);
           });


           console.log('this is a test result......\n'); 
      });

    (2)基於mongoose的支持。

  下載驅動組件$npm install -gd mongoose

     測試代碼如下:

     var mongoose = require('mongoose');
   var conn = mongoose.connect('mongodb://localhost/test');
 
   var db = mongoose.connection;
   db.on('error', console.error.bind(console, 'connection error:'));
     db.once('open', function callback (err) {
       if (!err){console.log('opened');}
     });
 
     var Schema = mongoose.Schema;
 
    var Person = new Schema({
          id   : Number
        , name : { type: String}
       
      });   
 var result = mongoose.model('users', Person);
 var PersonCollection = mongoose.model('users');
 var one = new PersonCollection();
 one.title ="zyq";
 one.age = 38;
 one.save(function(err){
        if(err){
              console.log('failed!!!!');
        }else{
              console.log('successful!!!!');
        }// end of if block
 });


 //test find
 PersonCollection.find(function (err, persons){
     if(!err){
      console.log(persons);
     }
 });

 

   

    b.MongoDB的REST 支持:

    由於MongoDB的BJSON數據存貯模式,天生的對JSON格式數據支持。在些條件下創建的REST支持最方便不過。

  1.-rest啟動參數對網頁管理的支持:

  2.快速搭建基於Node.JS,支持REST Web Service方式,JSON的格式MongoDB訪問平台:

    首先安裝mongodb 驅動:$npm install mongodb -gd.

    安裝mongodb的rest 組件:$npm install mongodb-rest -gd

    直接運行mongodb-rest.(在運行之前,找到這個組件目錄(在nodejs全局模塊目錄如:/usr/local/nodejs/lib/node_modules/mongodb-rest下,找到config.json.修改其中的mongodb的服務器地址端口為正確的數據,,不然會報unauthorized錯誤)

   如果說不能運行,且報說createServer錯誤,就要去修改組件目錄下的server.js把其中的var app = module.exports.app = express.createServer();改為var app = module.exports.app = express();

  代碼有點老了:)不過用來學習還是不錯的。

    此時就可以通過REST web Service方式來訪問mongoDB 了,我們可以用curl測試一下:

  $$ curl -d '{ "A1" : 201 }' -H "Content-Tyson" http://localhost:3000/test/example 

 

 

二,Redis數據庫:

   Redis的優缺點及應用場景在這里就不提了,可以查找我的別的日志了解一下。如果用在復雜些的緩存場景,用它是沒錯的,至少從目前技術角度來看。

 1.安裝Redis 數據庫。到官網下載安裝包。

http://redis.io/ 這里應該是2.6.10版本了。

$tar -xzvf redis-2.6.10.tar.gz

$cd redis-2.6.10

$make

$make install

ok現在你可以用redis自帶的客戶端來測試了

先運行Redis 服務器

$redis-server

$redis-cli

>redis 127.0.0.1:6379> set zyq 'is a good man'

redis 127.0.0.1:6379>get zyq

顯示'is a good man' ok,一切正常

安裝Node.JS的Redis驅動模塊:

$sudo npm install redis -gd

安裝完后可以寫代碼進行測試了:

var redis = require("redis");

var client = redis.createClient();    

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

client.set("skey", "this is string", redis.print);

client.hset("hashkey", "hashtest a", "abc", redis.print);

client.hset(["hashkey", "hashtest b", "some otest"], redis.print);

client.hkeys("hashkey", function (err, replies) {  

  console.log(replies.length + " replies:");    

     replies.forEach(function (reply, i) {

            console.log("    " + i + ": " + reply);

    });

    client.quit();

});

三,MySQL數據庫

四,HBase數據庫:

 

 

---待續-----


免責聲明!

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



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