RethinkDB:オープンソースリアルタイムデータベース
25295 ワード
この投稿は私のブログに掲載されましたbefore
こんにちは.
今日はrethinkdbについて話します.
これは、リアルタイムデータベースのオープンソースソリューションです.
rethinkdbは、ドキュメント指向のデータベースです.これはnoSQLデータベースシステムを使用します.
あなたはそれを得るためにRethinkの公式ウェブサイトを使用することができます.
https://rethinkdb.com/
Windowsを使用している場合.このリンクを使用できます.https://rethinkdb.com/docs/install/windows/
私はWindowsとしてWindowsを使用します.しかし、それは様々なシステムで動作します.rethinkdbを抽出しました.exeファイル.下の場所に一つのファイルしかありません.
動く!
RethinkDBは、組み込みのWebベースの管理インターフェイスが付属しています.このアドレスを使って開くことができます.http://localhost:8080/
ポート8080が他のプロセスによって使用する場合、エラーが表示されます.あなたはそれをネットワークに公開することができます.本当にそうするなら、この旗を使ってください.
このページでは、サーバー、テーブル、インデックスなどの統計情報が表示されます.
最初のページは常にダッシュボードになります.クラスタパフォーマンスチャートは、リアルタイムチャートです.
このページでデータベースとテーブルを見ることができます.また、データベースやテーブルを作成したり削除したりできます.
このページでサーバーを見ることができます.
このページでクエリを作成できます.これは、遊び場のようです.このページを使用する必要はありません.
ここですべてのログを見ることができます.
テーブルページに行きましょう.
その名前は、eコマースです.
データベース名を確認したら、「追加」ボタンをクリックします.
同じページにテーブルを追加するデータベースの「表を追加」ボタンを押します.
テーブル名を確認する場合は、「表を作成」ボタンをクリックします.
それはそうでしょう
私たちの最初の例はそのようになります
テーブル内のすべてのデータを取得する場合は、このコマンドを使用します
データフィルタリングはここで少し異なって動作します.だから、我々は
The これらはREQLコマンドです.
プライマリキーでデータをフィルタリングする必要がある場合は、このREQLコマンドを使用します.
それで、我々がリアルタイムでバスケットを更新すると言いましょう.どうすればよいでしょうか.RethinkDBの公式ノードを使います.この例のためのJSドライバ.
ここで公式ドライバを見ることができます.https://rethinkdb.com/docs/install-drivers/
まず、空のNodeJSプロジェクトを作成し、このコマンドを使ってRethinkDBのJavaScriptドライバをインストールします.
ソケットを使いたくない場合.ioは、rethinkdbを使用できます. それは、基本的なプロジェクトのために本当に断食です.私は大きなプロジェクトのためにそれを試みる機会がなかった. それは多くのプログラミング言語の良いドライバーを持って reqlを簡単に理解できます.Javascript自体だから 以上です.読書ありがとう.
Ten-minute guide with RethinkDB and JavaScript RethinkDB nedir? (in Turkish)
こんにちは.
今日はrethinkdbについて話します.
これは、リアルタイムデータベースのオープンソースソリューションです.
whatsはrethinkdbです
rethinkdbは、ドキュメント指向のデータベースです.これはnoSQLデータベースシステムを使用します.
どこでそれを得るか。
あなたはそれを得るためにRethinkの公式ウェブサイトを使用することができます.
https://rethinkdb.com/
Windowsを使用している場合.このリンクを使用できます.https://rethinkdb.com/docs/install/windows/
始めましょう
私はWindowsとしてWindowsを使用します.しかし、それは様々なシステムで動作します.rethinkdbを抽出しました.exeファイル.下の場所に一つのファイルしかありません.
C:\RethinkDB
そこで、このコマンドを端末で実行します.C:\RethinkDB\rethink
動く!
管理インターフェイス
RethinkDBは、組み込みのWebベースの管理インターフェイスが付属しています.このアドレスを使って開くことができます.http://localhost:8080/
ポート8080が他のプロセスによって使用する場合、エラーが表示されます.あなたはそれをネットワークに公開することができます.本当にそうするなら、この旗を使ってください.
--bind all
. それを行うと、RetImkDBはネットワーク上でアクセス可能になります.ダッシュボード
このページでは、サーバー、テーブル、インデックスなどの統計情報が表示されます.
最初のページは常にダッシュボードになります.クラスタパフォーマンスチャートは、リアルタイムチャートです.
テーブル
このページでデータベースとテーブルを見ることができます.また、データベースやテーブルを作成したり削除したりできます.
サーバ
このページでサーバーを見ることができます.
データエクスプローラ
このページでクエリを作成できます.これは、遊び場のようです.このページを使用する必要はありません.
ログ
ここですべてのログを見ることができます.
新しいデータベースの作成
テーブルページに行きましょう.
その名前は、eコマースです.
データベース名を確認したら、「追加」ボタンをクリックします.
新しいテーブルの作成
同じページにテーブルを追加するデータベースの「表を追加」ボタンを押します.
テーブル名を確認する場合は、「表を作成」ボタンをクリックします.
それはそうでしょう
データを挿入する
私たちの最初の例はそのようになります
const r = require('rethinkdb');
const newProduct = [
{
productName: 'iPhone',
productId: 1,
amount: 1
}
];
r.db('ecommerce').table('orders').insert(newProduct);
あなたはそのような出力になります{
"deleted": 0 ,
"errors": 0 ,
"generated_keys": [
"3dbdfc12-8bba-442e-ad5b-f0827710a134"
],
"inserted": 1 ,
"replaced": 0 ,
"skipped": 0 ,
"unchanged": 0
}
データの選択
テーブル内のすべてのデータを取得する場合は、このコマンドを使用します
const r = require('rethinkdb');
r.db('ecommerce').table('orders');
フィルタデータ
データフィルタリングはここで少し異なって動作します.だから、我々は
filter
メソッド.しかし、その動作はJavaScriptfilter
メソッド.const r = require('rethinkdb');
r.db('ecommerce').table('orders').filter(r.row('productName').eq('iPhone'));
出力フィルはこうです.{
"amount": 1 ,
"id": "3dbdfc12-8bba-442e-ad5b-f0827710a134" ,
"productId": 1 ,
"productName": "iPhone"
}
r.row
現在訪問されているドキュメントを参照します.r.row('productName')
フィールドの値を参照するproductName
を返します.eq
コマンドは2つの値が等しいならtrueを返す主キーによるフィルタデータ
プライマリキーでデータをフィルタリングする必要がある場合は、このREQLコマンドを使用します.
const r = require('rethinkdb');
r
.db('ecommerce')
.table('orders')
.get('3dbdfc12-8bba-442e-ad5b-f0827710a134');
リアルタイムフィード
それで、我々がリアルタイムでバスケットを更新すると言いましょう.どうすればよいでしょうか.RethinkDBの公式ノードを使います.この例のためのJSドライバ.
ここで公式ドライバを見ることができます.https://rethinkdb.com/docs/install-drivers/
まず、空のNodeJSプロジェクトを作成し、このコマンドを使ってRethinkDBのJavaScriptドライバをインストールします.
npm install rethinkdb
indexというファイルを作成します.jsそのようなコードを書きますconst r = require('rethinkdb');
const rethinkDbConnectionObject = {
host: 'localhost',
port: 28015
};
r.connect(rethinkDbConnectionObject, (err, conn) => {
if (err) {
console.error('Error:', err);
return;
}
console.log('RethinkDB works');
r.db('ecommerce').table('orders').changes().run(conn, (err, cursor) => {
if(err) {
console.error('Error:', err);
return;
}
cursor.each((err, row) => {
if(err) {
console.error('Error:', err);
return;
}
console.log(row)
});
});
});
コマンドを実行します.node index.js
さて、データを挿入するために遊び場に戻りましょう.const newProduct = [
{
productName: 'Vestel',
productId: 5111,
amount: 2
}
];
r.db('ecommerce').table('orders').insert(newProduct);
我々のクライアントサイドプロジェクトは、我々が現在リアルタイムに挿入した新しいデータを得ました.我々が以前に始めたスクリプトは、この出力を示しますRethinkDB works
{
new_val: {
amount: 2,
id: '4d79cf49-e661-49c6-a74a-21d7502bd85b',
productId: 5111,
productName: 'Vestel'
},
old_val: null
}
すべての注文の量を更新したいとしましょうr.db('ecommerce').table('orders').update({ amount: 1 });
そのような出力が見えます{
new_val: {
amount: 1,
id: '4d79cf49-e661-49c6-a74a-21d7502bd85b',
productId: 5111,
productName: 'Vestel'
},
old_val: {
amount: 2,
id: '4d79cf49-e661-49c6-a74a-21d7502bd85b',
productId: 5111,
productName: 'Vestel'
}
}
{
new_val: {
amount: 1,
id: 'b126f221-f7fd-43e8-b0b8-1ff472a08981',
productId: 51,
productName: 'Xaomi'
},
old_val: {
amount: 6,
id: 'b126f221-f7fd-43e8-b0b8-1ff472a08981',
productId: 51,
productName: 'Xaomi'
}
}
{
new_val: {
amount: 1,
id: '69507d9a-2680-478f-a68b-85fe5035744c',
productId: 3,
productName: 'Huawei'
},
old_val: {
amount: 2,
id: '69507d9a-2680-478f-a68b-85fe5035744c',
productId: 3,
productName: 'Huawei'
}
}
{
new_val: {
amount: 1,
id: 'acbac94b-2947-448c-8a43-02bb0b2fe9b8',
productId: 2,
productName: 'Samsung'
},
old_val: {
amount: 5,
id: 'acbac94b-2947-448c-8a43-02bb0b2fe9b8',
productId: 2,
productName: 'Samsung'
}
}
期待通りに働きました.結論
資源
Reference
この問題について(RethinkDB:オープンソースリアルタイムデータベース), 我々は、より多くの情報をここで見つけました https://dev.to/itachiuchiha/rethinkdb-open-source-real-time-database-42afテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol