RethinkDB之初体验

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

比如数据查看器:

这里写图片描述

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

这里写图片描述

当前资源概要:

显示了每秒的读写次数。
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值