您的位置:首页 > 其它

RethinkDB之初体验

2016-05-29 22:30 253 查看
官网

python api

RethinkDB是什么?

开源

NoSQL

分布式

高可用性

最大的特点就是时实。

它采取一个新的访问数据库的模型,用监听事件的方式来通知数据的变化。而不是轮训的方式。

以python为例:

import rethinkdb as r
conn = r.connect('127.0.0.1', db='exampledb')
r.table('exampletable').filter(r.row['colname']=='value').changes()
# do the thing when change


上面的代码意思就是在exampletable的colname变化为value时,就进行通知。没有变化之前,一直会是阻塞的。filter里也可以填自定义的函数。具体的可看filter的用法

数据库的基本操作

import rethinkdb as r

def example():
# create db
dbname='example'
conn = r.connect('127.0.0.1',db=dbname)
conn.repl()
# db api
if dbname not in r.db_list().run():
r.db_create(dbname).run()
print "create OK"
print "dblist:",r.db_list().run()
else:
r.db_drop(dbname).run()
print "drop OK"
print "dblist:",r.db_list().run()
# table api
tablename='exampletable'
db = r.db('test')
if tablename not in db.table_list().run():
db.table_create(tablename).run()
print "create table :",tablename
print "table list:",db.table_list().run()
else:
db.table_drop(tablename).run()
print "drop table:",tablename
print "table list:",db.table_list().run()
# writing data
if tablename not in db.table_list().run():
db.table_create(tablename).run()
table = db.table(tablename)
table.insert({'id':'xxx','value':'xxxvalue'}).run()
table.get('xxx').update({'value':'valuexxx'}).run()
res = table.filter({'value':'valuexxx'}).run()
print "filter query:"
for t in res:
print t
table.get('xxx').delete().run()

example()


上面的代码,对数据库和表的增删,对表中数据的增删改查。

函数的结构基本上是前面操作对像,后面操作行为。

注意每次操作后要加一个run(),不然是不生效的。

webUI

默认的会在8080端口开一个WebUI,来可视化数据。

比如数据查看器:



这个数据查看器,有强大的自动补全功能:



当前资源概要:

显示了每秒的读写次数。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RethinkDB