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})

浙公网安备 33010602011771号