2012-11-16 10 views
11

このようなインターフェイスはありません。leveldbで正確なキー数を取得するにはどうすればよいですか?

カウントを取得するためにすべてのキーを繰り返しますか?

その設計目的は何ですか?または、この機能を実装する際の制限は何ですか?

+0

はい、レコードを挿入/削除するときに独自のレコードカウントを実装していない限り、すべてのキーを反復処理する必要があります(これはかなり簡単です)。 – Kiril

答えて

9

"レベルを外部よりも効率的に実装する方法はありません。"データセット全体を反復またはインアプリケーションオンライトカウンターあなた自身を実装するためのいずれか除いて、それを行うには良い方法はありませんよう状態が公式issue 113

が見えます。

1

おそらく、LevelDBが構築されたとき、このAPIはオリジナルの著者には必要ではなかったでしょう。 悲しいことに、LevelDBには、カウントの記録に使用できるインクリメントAPIがありません。あなたが今実行できることは、Leveldbでキーを読み書きすることですが、これはスレッドセーフではありません。

あなたのユースケースに適している場合は、Redisを見てください。

関連する問題