RethinkDB之初体验

2022-04-08 00:00:00 数据 专区 订阅 操作 增删

官网
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,来可视化数据。

比如数据查看器:


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


当前资源概要:
显示了每秒的读写次数。


相关文章