RethinkDB尝试

RethinkDB是一个NoSQL,类似MongoDB的json文档存储。

特点是实时性。Real-Time

 

安装

根据官方文档,很简单,测试环境CentOS6.5

sudo wget https://download.rethinkdb.com/centos/6/`uname -m`/rethinkdb.repo \
          -O /etc/yum.repos.d/rethinkdb.repo

 

启动

[root@localhost ~]# rethinkdb --bind all
Running rethinkdb 2.3.5 (GCC 4.8.2)...
Running on Linux 2.6.32-642.3.1.el6.i686 i686
Loading data from directory /root/rethinkdb_data
Listening for intracluster connections on port 29015
Listening for client driver connections on port 28015
Listening for administrative HTTP connections on port 8080
Listening on cluster addresses: 127.0.0.1, 192.168.1.209, ::1, fe80::20c:29ff:fe9a:331b%2
Listening on driver addresses: 127.0.0.1, 192.168.1.209, ::1, fe80::20c:29ff:fe9a:331b%2
Listening on http addresses: 127.0.0.1, 192.168.1.209, ::1, fe80::20c:29ff:fe9a:331b%2
Server ready, "localhost_localdomain_i0i" ebfaba3a-0624-4493-909b-d7d138cf032d

 

启动后,有个web版的控制台,可以查看管理数据库。

 

通过程序连接,关于driver,官方仅有javascript,ruby,python,java版本。

但社区有N多其它版本,比如c#, php, go等

 

一个c#的demo, changefeed, 数据库有改动时,通知应用。

class Program
    {
        public static RethinkDB R = RethinkDB.R;

        static void Main(string[] args)
        {
            HandleUpdates();
            Console.Read();
        }

        static async Task HandleUpdates()
        {
            var c = R.Connection()
             .Hostname("192.168.1.209")
             .Port(28015) //RethinkDBConstants.DefaultPort
             .Timeout(60)
             .Connect();

            var feed = await R.Db("test").Table("tv_shows").Changes().RunChangesAsync<chatMessage>(c);

            foreach (var message in feed)
            {
                Console.WriteLine($"{message.NewValue.name}: {message.NewValue.episodes}");
            }

            Console.Write("end");
        }
    }

    class chatMessage
    {
        public string name { get; set; }
        public int episodes { get; set; }
    }

 

尝试在控制台插入或修改数据,应用端可及时收到更新。

r.table('tv_shows').filter({name:'cny'}).update({episodes:779})

posted @ 2017-03-17 11:18  chy710  阅读(354)  评论(0)    收藏  举报