zoukankan      html  css  js  c++  java
  • 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数据库:

    ---待续-----

  • 相关阅读:
    Effective Java 第三版——72. 赞成使用标准异常
    Effective Java 第三版——71. 避免不必要地使用检查异常
    Effective Java 第三版——70. 对可恢复条件使用检查异常,对编程错误使用运行时异常
    Effective Java 第三版——69. 仅在发生异常的条件下使用异常
    Effective Java 第三版——68. 遵守普遍接受的命名约定
    Effective Java 第三版——67. 明智谨慎地进行优化
    Effective Java 第三版——66. 明智谨慎地使用本地方法
    Effective Java 第三版——65. 接口优于反射
    Effective Java 第三版——64. 通过对象的接口引用对象
    Effective Java 第三版——63. 注意字符串连接的性能
  • 原文地址:https://www.cnblogs.com/windwithlife/p/2923235.html
Copyright © 2011-2022 走看看