26

Windows用のRedisサーバー(2.8.4 - MSOpenTech)/ Windows 8 64ビットを使用しています。

それはうまく機能していますが、実行した後でも:

ここに画像の説明を入力

私はこれを見ます:(そしてここに私の質問があります)

ここに画像の説明を入力

質問 :

— DB をすべて消去するように指示しただけではありませんか。では、なぜそれらの 2/3 の巨大なファイルがまだ存在しているのでしょうか。これらのファイルを完全に消去するにはどうすればよいですか? (再生成なし)

注意占有スペースを解放せずにキーの削除を行っているようです。もしそうなら、どうすればこの未使用のスペースを解放できますか?

4

4 に答える 4

25

https://github.com/MSOpenTech/redis/issues/83から 「Redis は fork() UNIX システム API を使用して、ディスクへのストレージ用のデータ ストアのポイント イン タイム スナップショットを作成します。これは、Redis のいくつかの機能に影響します。 : AOF/RDB バックアップ、マスター/スレーブ同期、およびクラスタリング. Windows には利用可能な fork のような API がないため、子と共有できるメモリ マップ ファイルに Redis ヒープを配置して、この動作をシミュレートする必要がありました。 (準分岐) プロセス. デフォルトでは、このファイルのサイズを物理メモリのサイズと等しくなるように設定します. このファイルのサイズを制御するために、maxheap フラグを追加しました. Redis.Windows.conf ファイルを参照してくださいこのフラグの使用方法の詳細については、msvs\setups\documentation (NuGet および Chocolatey ディストリビューションにも含まれています) を参照してください。"

于 2014-05-14T19:17:21.890 に答える
7

これが古いスレッドであることは知っていますが、ファイル サイズに関して同じ問題に直面しています。

C ssd ドライブ (私のように) に問題がある場合は、ディレクトリ ジャンクションを作成できます。

1) redis サービスを停止します
。2) C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Redis フォルダーを別のドライブ/場所に移動します。
3) C:\Windows\ServiceProfiles\NetworkService\AppData\Local でコマンド プロンプトを開き、次を実行します:

mklink /J "C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Redis" "[newpath]"

PD: [newpath ] は、"D:\directory junctions\Redis" のように絶対である必要があります

。 4) redis サービスを開始します。現在、ファイルは別のドライブにあります。

このコマンドについて疑問がある場合は、http://ss64.com/nt/mklink.htmlを確認してください。

于 2015-10-14T15:56:55.713 に答える
1

DB をフラッシュすると、メモリからキーのみがフラッシュされます。異なる名前のファイルがある理由はわかりません。Redis の Windows ポートがファイルを管理する方法のアーティファクトかもしれませんが、キーを削除しても Redis 自体はファイルを削除しません。Redis の外部で古いファイルを管理する必要があります。

于 2014-05-14T18:52:24.747 に答える