問題タブ [key-value-store]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - ドキュメントベースのデータストア (Mongo など) とキー値ストアはどのように実装されていますか?
私は最近、ドキュメントベースのデータベースとキーバリューストアについて少し読んでいます (ドキュメントベースとキー/バリューベースのデータベースの違いについての概要はこちらです? ) 。 .
キー (または追加のインデックス) を使用してこれらのいずれかをクエリする場合、メカニズムに実際の違いはなく、値を取得します。インデックス化されていないドキュメント/フィールドをクエリするときに、ドキュメント ストアがキー値ストアとどのように異なるかについては明確ではありません。キーと値のストアの上にドキュメント ストアを実装する場合、クエリで適切な値を取得するために「テーブル スキャン」(すべてのキーと値のペアをチェック) を実行します。カバー?ドキュメント データ ストアをこのように考えるのは適切でしょうか。
これは、基礎となるテクノロジーを理解することを目的としたものというよりも、実用的な質問ではありません (何か有用なことを行う必要がある場合、BDB で Mongo を使用する可能性が最も高いでしょう)。特定のシステムのスケーリングの側面に興味があるのは、それらが基礎となる実装に適用できる場合のみです。
database - 誰かがmysqlで単純なキー/値ストアを実装する方法を説明できますか?
http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/:
FacebookはMySQLを使用しますが、最適化はそこで(Memcachedレイヤーの「反対側」で)実行しやすいため、主にKey-Value永続ストレージとして結合とロジックをWebサーバーに移動します。
誰かがmysqlで単純なキー/値ストアを実装する方法を説明できますか?それは単に主キーとしてbigint+の単一の列を持つテーブルLONGTEXT
ですか?
mysql - mysql キー/値ストアの問題
mysql でキー/値ストアを実装しようとしています
グローバル ID 用とシリアル化されたデータ用の 2 つの列を持つユーザー テーブルがあります。
問題は、ユーザーのデータが少しでも変更されるたびに、シリアル化されたデータをデータベースから取得し、データを変更してから、再シリアル化してデータベースに戻す必要があることです。ユーザーのデータに非常に小さな変更がある場合でも、これらの手順を繰り返す必要があります (db 自体のセルを更新する方法がないため)。
基本的に、この問題に直面したときに人々が通常使用するソリューションを検討していますか?
database - 単純な緯度/経度 + 整数データベース?
迅速な地理空間検索のために、緯度、経度、および整数値を格納するための高速で永続的なデータベースはありますか?
アイデアは、さまざまなもののIDがたくさんあり、特定の場所にあるすべてのIDを緯度/経度の正方形で検索したいということです。
私が最初に考えたのは、membase や redis のようなキーと値のストアをクリエイティブに使用することでした。ただし、セットサイズの緯度/経度ブロックを作成し、すべてのIDを値として配置する以外に、緯度や経度などのプロパティに基づいて検索する方法がわかりません(うまく機能しません)。
memcached - 値に基づくmemcachedの無効化
memcahced
値に基づいてエントリを無効にすることは可能ですか?
私のアプリでは、さまざまなグループにユーザーを割り当てており、このマッピングをに保存していmemcached
ます。
したがって、複数userIds
を1つにマップしgroupID
ます。
memcache
特定のグループを削除するとき、削除されたグループの値として値を持つストア内のすべてのエントリを削除したいと思いますgroupID
。したがって、基本的に、特定の値を持つエントリを削除したいと思います。どうすればいいのですか。
python - リスト内のアイテムと一致する辞書値に対してアクションを実行する
46,000 個のキーと値のペアを持つ辞書があり、各キーには値として 3 つの項目リストがあります。
私は何百もの値を持つリストを持っています:
リスト L1 を反復処理し、L1 の各項目について、value[0] がリスト項目と一致する各辞書値と一致させるにはどうすればよいですか? 次に、辞書の value[1] と value[2] に対して、リスト項目が辞書の value[0] に一致するキーと値のペアに対してのみ、他の操作を実行したいと考えています。
上記の例では、L1 の最初の項目 - 'A' のみが一致しkey1: ['A', 'B', 'C']
ます。
私はこれを行う方法を理解できないようですか?助けてくれてありがとう!
javascript - Node.jsで使用するための軽量JavascriptDB
Node.jsで使用できる、Javascriptで記述された軽量で耐久性のあるデータベースを知っている人は誰でもいます。
MongoやCouchのような(優れた)ソリューションの「重み」は必要ありません。ファイルとしてディスクに永続化する機能を備えた、単純なメモリ内JSデータベースで十分です。少量のデータを保存するためにのみ使用します。
要件:
- node.jsサーバーアプリケーションでインプロセスで実行できます
- データベース全体をディスクに保存し、障害後に回復できます
- アトミック書き込みやトランザクションサポートは必要ありません
- 高速クエリと並べ替えがいいでしょう
- 合計で最大1MBの少量のデータをサポートする必要があるだけです
これまでTAFFYdbに出くわしましたが、Node.jsでの使用に最適化されていないようです。私が探しているものを見た人はいますか?
ありがとう
python - フォームフィールドをキー値/個々の行として保存します
私はDjangoに次のような単純なフォームを持っています:
...そしてそれを保存するモデルは次のようになります:
フォームが送信されたときに、フォームフィールドをキーと値のペアとして保存し、ページがレンダリングされたときに、キーの値でフォームを初期化するにはどうすればよいですか。これの実装を探してみましたが、見つかりませんでした。
何か助けはありますか?
ありがとう。
database - Cassandra は、頻繁なクエリ (読み取り/書き込み) を必要とするシステムに適していますか?
多くのユーザーが同じ「宇宙」にいる必要があるWebアプリケーションを開発しています。そこでは、多くの頻繁なクエリが発生します。
- 特定のボックス領域 (X1、X2、Y1、Y2 の間) にあるクライアントの頻繁なルックアップ
- クライアントによる頻繁なポジション更新
- クライアントによる頻繁なチャット メッセージ
- クライアントによる頻繁なステータス更新
- 新しいクライアントと古いクライアントの頻繁な接続と切断
私のノードには、現在オンラインのすべてのユーザーが RAM に入れるのに十分なメモリがあると思います。これが、私が最初に Redis を検討した理由です。ただし、次の理由により、Redis はここでは適用できないと判断しました。
- 単一障害点 (1 つのマスターサーバー) がある
- マスターサーバーのみが書き込むことができます.1つに40個のノードがある場合、39個のスレーブが1つのマスターにすべてのエントリを書き込ませる必要があります.
Cassandra はこれらの問題を解決するようです。
しかし、Cassandra は私の頻繁なクエリにも適していますか?
database - 物理的な測定に適した (noSQL?) データベース
私たちは、最終的に数千の測定ステーションからなる測定システムを構築しています。各ステーションは、その存続期間中に 30 のスカラー値で構成される約 5 億の測定値を保存します。これらは float 値になります。各ステーションでこのデータを保存する方法を考えています。
- 複数のタイムスケールでデータを視覚化したい (例: 1 週間、1 か月、1 年の測定値)
- データの移動平均を作成する必要があります (たとえば、1 か月の平均を 1 年のグラフで表示するなど)。
- データベースはクラッシュ耐性がある必要があります (停電)
- 書き込みと読み取りのみを行っており、データの更新や削除は行っていません
さらに、たとえば 1000 の測定ステーションのデータを表示できるサーバーがもう 1 台必要です。これは、5,000 億回の測定で最大 50 TB のデータになります。測定ステーションからサーバーにデータを送信するには、ある種のデータベース レベルのレプリケーションがクリーンで効率的な方法になると考えました。
今、これらの目的のために、noSQL ソリューションが mySQL よりも優れているかどうか疑問に思っています。特に、 cupDB、Cassandra 、そしておそらくRedisのようなキーバリュー ストアは、私にとって魅力的に見えます。あなたの意見では、「測定時系列」データモデルに最も適しているのはどれですか? クラッシュの安全性や測定ステーションからメイン サーバーへのレプリケーションなど、その他の利点についてはどうですか?