80

Redis のすべてのキーのすべてのリストを取得するには、 を使用する必要があることはわかっていますがKEYS *、すべてのキーとその値を一緒に出力する方法はありますか?

数分間検索しても結果は得られませんでした。

PS回答ありがとうございますが、ネイティブソリューションを探しています。のすべての出力を反復処理する関数をKEYS *自分で作成できます。

4

13 に答える 13

53

これを行うネイティブな方法はありません。

Redis コマンドのドキュメントには、複数のキーのキーと値を取得するためのネイティブ コマンドは含まれていません。

これを行う最もネイティブな方法は、コマンドまたは コマンドを使用して、 lua スクリプトを redisにロードすることです。SCRIPT LOADEVAL

Bash Haxx ソリューション

回避策は、次のような bash マジックを使用することです。

echo 'keys YOURKEY*' | redis-cli | sed 's/^/get /' | redis-cli 

これにより、YOURKEY で始まるすべてのキーからデータが出力されます。

keys コマンドはブロッキング操作であり、注意して使用する必要があることに注意してください。

于 2015-02-06T15:37:29.873 に答える
9

KEYS コマンドは、Redis イベント ループを数秒間ブロックする可能性があるため、多数のキーがある場合、Redis 本番インスタンスで使用しないでください。

ダンプ (bgsave) を生成し、次の Python パッケージを使用して解析し、データを抽出します。

https://github.com/sripathikrishnan/redis-rdb-tools

json 出力を使用することも、Python で独自の出力をカスタマイズすることもできます。

于 2013-10-14T11:23:31.010 に答える