インメモリ データベースは、リレーショナル メモリ データベースとキー/値メモリ データベースに分類できます。実際のアプリケーションでは、パフォーマンスを重視して、Oracle や MySQL などの大規模なリレーショナル データベースとともにインメモリ データベースが主に使用されます。
これはキャッシュのように機能し、データの整合性や一貫性には注意を払いません。
キー値ベースのインメモリ データベースは、リレーショナル データベースよりも使いやすく、パフォーマンスとスケーラビリティが優れているため、リレーショナル インメモリ データベースよりもアプリケーションで多く使用されます。
FastDB、Memcached、Redis の主流のインメモリ データベースの機能的特徴を比較します。
FastDB の機能には次のものが含まれます:
1. FastDB はクライアント/サーバー アーキテクチャをサポートしていないため、FastDB を使用するすべてのアプリケーションは同じホスト上で実行する必要があります。
2. Fastdb はデータベース全体が RAM 上に存在すると仮定し、この仮定に基づいてクエリ アルゴリズムとインターフェイスを最適化します。3. Fastdb にはデータベース バッファ管理のオーバーヘッドがなく、データベース ファイルとバッファ プールの間でデータを転送する必要がありません。
4. fastdb の検索アルゴリズム全体と構造は、すべてのデータがメモリ内に存在するという前提に基づいているため、データ交換の効率はあまり高くありません。
5. Fastdb は、トランザクション、オンライン バックアップ、およびシステム クラッシュ後の自動リカバリをサポートします。
6. Fastdb はアプリケーション指向のデータベースであり、データベース テーブルはアプリケーションのクラス情報によって構築されます。
FastDB は Java API インターフェイスをサポートできないため、このアプリケーションで FastDB を使用するのは不適切です。
Memcached
Memcached は Key-Value ベースのオープンソース キャッシュ サーバー システムで、主にデータベースのデータ キャッシュとして使用され、完全にデータベースと呼ぶことはできません。
memcached API は、32 ビット巡回冗長検査 (CRC-32) を使用してキー値を計算し、データをさまざまなマシンに分散します。テーブルがいっぱいになると、次に新しく追加されたデータが LRU メカニズムを使用して置き換えられます。 memcached は通常、キャッシュ システムとしてのみ使用されるため、memcached を使用するアプリケーションでは、低速システム (バックエンド データベースなど) に書き戻すときに memcached 内のデータを更新するための追加手順が必要になります。
memcached には、Perl、PHP、JAVA、C、Python、Ruby、C# などの複数の言語のクライアント開発パッケージがあります。
Redis
Redis は、高性能のキー/値データベースです。 Redis の出現により、memcached などのキー値ストレージの欠点が大幅に補われ、状況によってはリレーショナル データベースに対して非常に優れた補完的な役割を果たすことができます。 C、Java、Python、Ruby、Erlang、および PHP クライアントを提供します。
どのオープンソース データベースを選択するか
MySQL データベースは、現在最も人気のあるオープン ソース データベースの 1 つとして、幅広いアプリケーションの展開に適しており、ユーザーの TCO を削減できる比較的シンプルなソリューションをユーザーに提供します。 MySQL は、マルチスレッドの構造化照会言語 (SQL) データベース サーバーです。 MySQL は実行パフォーマンスが高く、実行速度が速く、使いやすいです。
MySQL には次の重要な利点があります:
◆ 信頼性の高いパフォーマンスとサービス MySQL は、すべてのデータベース サーバー ソフトウェアの初期バージョンを一般に提供しており、実稼働用にリリースされる前に、オープン ソースを使用して数か月間テストされます。
◆ 使いやすく、展開が簡単 MySQL の構造システムはカスタマイズが簡単で、高速に実行できます。その独自のマルチストレージ エンジン構造は企業顧客に柔軟性を提供し、データベース管理システムにコンパクトさと安定性をもたらし、展開も簡単です。
◆ ソース コードへの自由なアクセスにより、いつでも MySQL ソース コードにアクセスでき、その戦略により自由が保証され、特定の企業やプラットフォームにロックインされることが回避されます。
◆ クロスプラットフォームのサポート MySQL は、主要な Linux システム、Mac OS X、Unix、Windows を含む 20 を超える異なるプラットフォームで利用できます
◆ 信頼できる開発力 MySQL には大規模なユーザー ベースがあり、高度な資格と経験を積んだ開発チームがいます。
◆ エンタープライズ ニーズを満たす MySQL 構造システムはシンプルで使いやすく、非常に高速に動作し、エンタープライズ データベースのほとんどのアプリケーション ニーズに対応できます。
2008 年 12 月 8 日、Sun Microsystems は、MySQL 5.1 ソフトウェアを外部に正式に提供すると発表しました。これは、世界で最も人気のあるオープン ソース データベースである MySQL の非常に重要な新バージョンです。 MySQL 5.1 GA バージョンは、さまざまなユーザーのさまざまな特別なニーズを満たすために、次の 3 つのモードで提供されるようになりました:
◆MySQL Community Server - Sun の MySQL データベースの無料オープンソース バージョン。この GPL ライセンスのフル機能のソフトウェアは、商用サポートや優先的な機内サービスを必要としない個人の技術ユーザーを対象としています。
現在最も成熟したオープンソース nosql は何ですか
HBase と Cassandra はどちらも Google の BigTable をモデルにした列ベースのデータベースであり、両方とも Java で書かれています。もう 1 つの同様のデータベースは HyperTable です。これは C で書かれており比較的高速であるため、バックグラウンド分析に使用されます。ただし、HyperTable は少し周縁的であり、あまり人気がありません。これらの列ベースのオープンソース データベースは現在、Google の BigTable
よりも 1 桁小さいです。CouchDB はドキュメント データベースです。最大の競合相手は MongoDB です。 MongoDB と HBase はどちらもマスター/スレーブ サーバー設計を採用しています。 CouchDB のサーバー分散設計は Cassandra に似ており、ピアツーピア タイプです。マスター/スレーブ サーバーの設計は一般により一貫性があり、CAP 理論の CP タイプに属します。 CouchDB と Cassandra は一般にイベント整合性があると考えられており、CAP 理論の AP タイプに属します。しかし実際には、MongoDB と Cassandra はどちらも強力な整合性またはイベント整合性を設定できます。
上記のデータベースはすべて MapReduce をサポートしています。 HyperTable は非主キーインデックスをサポートしているようです。強力な一貫性のある構成を備えた HBase と MongoDB はどちらも、最も基本的なロック (HBase の単一行ロック、MongoDB の単一ドキュメント ロック) をサポートしているため、トランザクションを実装できますが、実装は少し複雑で非効率です。トランザクションだけに関して言えば、現在のオープンソース NoSQL データベースは十分な機能を発揮しません。
MongoDB の最大のセールス ポイントは、非主キー インデックスを構築せずに多くのクエリを実行できることです。しかし、MongoDB のサーバー分散設計はお世辞にも優れておらず、NoSQL データベースの中で最も醜い実装であると言えます。
K-V データベースは数多くあり、上記の列ベースのデータベースやドキュメント データベースも実際には K-V データベースです。より一般的な純血種 K-V データベースには次のものがあります:
Memcached: 非常に人気がありますが、永続性はサポートされていません
VMWare の Redis: 非常に人気があり、Sina と Zhihu によって使用されている、CP タイプ。
MemBase: 基礎となるストレージとして sqlite を使用して、多くの Memcached 開発者によって開発されました。ソーシャルゲームでよく使われている、Zyngaも使っている、CPタイプ。
Riak の分散実装は、AP タイプの CouchDB/Cassandra に似ています。 MapReduce をサポートします。
Linkin の Voldemort、K-V における稀なイベント一貫性のある AP タイプ。
TT、TC
純粋に 2 次元座標インデックスに基づくのが Neo4j です。しかし現在では、MongoDB と CouchDB の両方がこの機能を統合しています。
CouchDB の開発者によって設立された会社である CouchOne は、MemBase を買収し、その基盤となる sqlite を CouchDB に置き換えて CouchBase を立ち上げ、非主キー インデックスをサポートするために MapReduce を導入しました。 CouchBase はまだ正式版をリリースしていませんが、間もなくリリースされる予定です。 CouchDB はイベント整合性を備えていますが、CouchBase の開発者は、CouchBase が MemBase の強力な整合性機能を維持しており、具体的な実装は今後研究されると主張しています。
成熟した観点から見ると、より成熟していて非常に人気のあるものには、CouchDB、Memcached、Redis などがあります。
以上がWindows では、Redis に似たどのようなインメモリ データベースを利用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。