Redisデータベースを空にする方法は?


164

私は過去数日間、redisを使って遊んでいます(そして、いくつかの楽しみを追加しています)。dbを空にする方法(セット、既存のキーを削除する方法)があるかどうか知りたいです。 。
テスト中に、多くのメンバーでいくつかのセットを作成しました。名前を覚えていないセットも作成しました(どのようにすればそれらの人をリストできますか?)。
それらをすべて取り除く方法について何か考えはありますか?

回答:


197

次の2つのオプションがあります。

  • FLUSHDB-現在アクティブなデータベースをクリアします
  • FLUSHALL-既存のデータベースをすべてクリアします

136

ここで注意してください。

FlushDBは現在のデータベースのすべてのキーを削除し、FlushALLは現在のホストのすべてのデータベースのすべてのキーを削除します。


FlushDBを使用して特定のデータベースを本番コードからクリアすることの欠点はありますか?
Alex Naspo 2014年

1
@AlexNaspoは、DBが大きいほどフラッシュに時間がかかるため、潜在的に問題があります。番号が付けられた(共有)データベースは同じRedisサーバーによって管理されるため、その間、他のデータベースをブロックする可能性があります。そのため、共有データベースは将来も保証されない(v3ではサポートされていない)ため、可能であれば使用しないでください。詳細については、こちらを参照してください:redislabs.com/blog/…–
Itamar Haber

@ItamarHaber特定の形式に一致するキーのセットを削除または期限切れにする最も効率的な方法は何ですか?
Alex Naspo 2014

1
@AlexNaspo v2.8 +を使用している場合、SCANとDELの組み合わせでうまく機能します。それを行うbashスクリプトについては、こちらを参照してください:stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-cli次に、データベースを選択します。私は0 > select 0を選択して、db 0のすべてのキーを削除しています> FLUSHDB
sagar junnarkar

31

redis-cli

FLUSHDB       - Removes data from your connection's CURRENT database.
FLUSHALL      - Removes data from ALL databases.

Redisドキュメント: FLUSHDBFLUSHALL


30

tldr:flushdb1つのデータベースをflushallクリアし、すべてのデータベースをクリアします

現在をクリア

デフォルトまたは現在選択されているデータベース(通常は `0)を削除するには

redis-cli flushdb

明確な特定

特定のredisデータベースを(たとえば8、ターゲットデータベースとして)削除します。

redis-cli -n 8 flushdb 

すべてクリア

ですべてのredisデータベースを削除する

redis-cli flushall

2

正しい答えがありますが、もう1つオプションを追加したいだけです(ダウンタイムが必要です)。

  1. Redisを停止します。
  2. RDBファイルを削除します(redis.confで場所を見つけます)。
  3. Redisを起動します。

0

Redis cliを開き、使用可能な2つのオプションがあります。

FLUSHDB-現在選択されているDBのすべてのキーを削除します。FLUSHALL-現在選択されているデータベースだけでなく、既存のすべてのデータベースのすべてのキーを削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.