SSDB FAQ – よくある質問


  • #質問: ここには聞きたい質問も答えもありません。どうすればよいですか?

##回答: ドキュメントを読んで自分の頭で考えて、自分の質問に答えることをお勧めします。

ドキュメントを読んで考えてもまだ答えが得られない場合は、 Github に問題を提出できます。

技術製品のユーザー、インターネット ワーカー、さらにはプログラマーとして、基本的な質問スキルを学ぶ必要があることに注意してください。質問が答えられない場合は、責任は質問された人ではなく、あなた自身にあります。

通常の技術者のように正しく質問しませんでした


  • 質問: このマシンでは SSDB サーバーにアクセスできるのに、他のマシンではアクセスできないのはなぜですか? 接続が拒否されましたというメッセージが表示されます。

回答: デフォルトの構成ファイルは、セキュリティ上の理由から、ローカル アクセスに対してのみ公開されています。ネットワーク上の他の IP に対しても公開したい場合は、ドキュメントに従って設定を変更してください。

  • #質問: 同時実行数が増加できないのはなぜですか? サーバーはエラーを報告します 開いているファイルが多すぎます、そしてクライアントはエラーを報告します ピアによって接続がリセットされました。

回答: 構成についてはドキュメントを参照してください。

  • 質問: 1 つ、2 つ、または 1 つを削除しましたすべてのキーを使用しているのに、SSDB が占有しているのはなぜですか。メモリとディスク領域が解放されません。

回答: SSDB には、いつ解放するか、解放するかどうかを決定する独自の戦略があります。占有されているメモリとハードディスクのスペースを解放します。SSDB に対して、このスペースをすぐに解放するか、将来のある時点で解放するか、または特定の条件 に基づいて解放するように要求することはできません。また、データベースがクリアされた場合でも、SSDB 一部の情報が保持されるため、ハードディスクの空き容量がまだ占有されます。この問題については心配する必要はありません。

  • Q: SSDB がときどき CPU を 100% 使用するのはなぜですか?

##回答: SSDB 時々 CPU を 100% 使用するのは完全に 通常の です。大騒ぎしないでください。 . これは、SSDB/LevelDB がデータベース圧縮 (Compaction) 操作を実行しているためで、所要時間は一般的に異なります。データが大きくなるにつれて、通常は数秒しかかかりません。

  • Q: SSDB が時々より多くのディスク IO を使用するのはなぜですか?

回答: SSDB 場合によっては、より多くのディスク IO を使用するのは完全に 通常の です。大騒ぎしないでください。これは、SSDB/LevelDB がデータベース圧縮 (Compaction) 操作を実行しているためであり、通常、時間が経過するにつれて時間が長くなります。データが大きくなります。可変長で、通常は数秒しか続きません。

  • 質問: SSDB が時々より多くのメモリ領域を使用し、その後再び減少するのはなぜですか?

回答: SSDB が使用するメモリ空間は変化し、多い場合も少ない場合もあります。使用されるメモリ空間の上限はドキュメントに記載されています。

  • 質問: 圧縮中はサービスが少し遅くなります。圧縮の実行時間を設定できますか?

回答: 非常に残念ながら、いつ圧縮を実行するかを設定することはできません。SSDB/LevelDB には、いつ圧縮を実行するかを決定する独自のポリシーとメカニズムがあります。ほとんどのユーザーからのフィードバックによると、圧縮はサービスに影響を与えません。

  • ##Q: 元の構成ファイルでは圧縮オプション (圧縮: いいえ) がオンになっていませんでした。途中で圧縮をはいに変更できますか?

回答: はい、圧縮オプションはいつでも変更できます。ssdb-server を再起動する限り、新しい変更は有効になります。変更後も、元のデータはそのまま残ります。

  • #質問: 圧縮オプションをオンにしましたが、SSDB のハードディスクの占有領域は小さくなりません。何が起こっていますか?

回答: 圧縮オプションをオンまたはオフにしても、新しいオプションは再起動するとすぐに有効になります。ただし、新しいオプションは有効になります。元の古いデータに必ずしもすぐに影響するわけではありません。SSDB は必要に応じて古いデータに新しいオプションを適用しますが、これを制御することはできません。


  • #質問: SSDB に保存されているキーの総数を知るコマンドはありますか?
##回答:

KV の数を数えたい場合は、最初にすべての KV を同じ HASH に入れてから、hsize コマンドを使用してキーの数を取得する必要があります。最初にこれを実行しなかった場合、または KV 以外の数量をカウントしたい場合、答えは簡単です。そのような単一のコマンドはありません (統計をトラバースするスクリプトを自分で作成しない限り)。

回答: SSDB はサポートしており、 のみプレフィックス検索をサポートしています。つまり、a と同様の検索ですが、# はサポートしていません。 ##aa またはその他のあいまい検索。具体的な使用方法については、コマンド scan# を参照してください。 ##、hlistkeyshkeyshscanzlistzkeyszscanqlist .

のドキュメント。これらのコマンドでは、!

回答: SSDB はセットをサポートしていませんし、代替手段があるため、将来的にもサポートされる可能性は低いです。ハッシュのキーは一意であり、セットの特性を実現できるため、セットの代わりにハッシュを使用できます。交差や結合などの操作については、自分で実装することしかできません。たとえば、交差を見つけるには、最初のハッシュのキーを走査し、それを 2 番目のハッシュと比較し、その結果を 3 番目のハッシュに保存します。


回答: Twemproxy は SSDB ネットワーク プロトコルをサポートしていないため、Twemproxy への接続には redis-cli のみを使用できます。 cli または redis-cli を使用して SSDB に接続します。これは、SSDB が 2 つのプロトコルをサポートしているのに対し、Twemproxy は 1 つのプロトコルのみをサポートしているためです。

答え: インスタンスごとは異なる構成ファイルを使用して起動されており、構成ファイル内の work_dir server.port は同じにすることはできません、つまり、各インスタンスのデータベース ストレージ パスとリスニング ポートを同じにすることはできません。 ##pidfile logger.output 絶対パスが使用されており、同じにならないようにする必要があります。相対パスの場合は、デフォルトのパスが次のとおりであるため、必要ありません。 work_dir .

に続くため異なります。