2

さまざまな長さ (数バイトから数キロバイト) の文字列を処理する関数のキャッシュを実装する必要があります。私の意図は、これにデータベースを使用することです。基本的には、入力列と出力列、および入力列のインデックスを持つ 1 つの大きなテーブルです。キャッシュは、入力列で文字列を見つけて出力列を取得しようとします。これはおそらく、考えられる最も単純なデータベース アプリケーションの 1 つです。

このアプリケーションに最適なデータベースはどれですか? mysql のようなフル機能のデータベースですか、それとも sqlite3 のような単純なデータベースですか? または、データベースを使用しないことによるより良い方法はありますか?

4

2 に答える 2

2

ドキュメントストアはこのために作られています。この特定の問題には Redis を強くお勧めします。これは「キーと値」のストアです。つまり、関係やスキーマはなく、キーを値にマップするだけです。これはまさにあなたが必要としているもののように聞こえます。

代替手段は MongoDB と CouchDB です。周りを見回して、あなたに最適なスイートを見つけてください。ただし、私の推奨事項は Redis のままです。

読書: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

于 2013-04-11T04:23:11.927 に答える
1

Joe は、キャッシュに一般的に使用されるデータ ストアに関するいくつかの優れた推奨事項を示しています。Redis、Couchbase (ただし、CouchDB ではありません。私の経験からすると、かなり頻繁に/それほど高速ではありません)、そして単純な Memcached と言えます。

MongoDB はキャッシングに使用できますが、Redis のような純粋なキャッシング用に調整されているとは思いません。Mongo はかなりディスクにヒットできます。

また、主要なキャッシング戦略として Time to Live (TTL) を使用することを強くお勧めします。値が期限切れになるまでしばらく時間を与えてから、後で再設定してください。キャッシュ内の一部のデータのすべてのインスタンスを積極的に見つけて更新することは、非常に困難な問題です。

于 2013-04-11T18:53:32.190 に答える