私はWindows( 2.8.4-MSOpenTech )/ windows 8 64ビット用のRedis-serverを使用しています。
それは素晴らしい仕事ですが、私が走った後でさえ:
私はこれを見ます:(そしてこれが私の質問です)
Redis-server.exe
is up、 つの大きなファイル :
Redis-server.exe
がダウンしています、 2つの大きなファイル が表示されます:
質問:
—すべてのDBを消去するように指示しただけではありませんか?では、なぜ2/3の巨大なファイルがまだ残っているのですか?これらのファイルを完全に消去するにはどうすればよいですか? (再生成なし)
NB占有スペースを解放せずにキーの削除を行っているようです。もしそうなら、どうすればこの未使用スペースを解放できますか?
From https://github.com/MSOpenTech/redis/issues/8 "Redisは、fork()UNIXシステムAPIを使用して、ディスクへのストレージ用のデータストアのポイントインタイムスナップショットを作成します。これはRedisのいくつかの機能に影響を与えます:AOF/RDBバックアップ、マスタースレーブ同期、およびクラスタリング。WindowsにはフォークのようなAPIがないため、Redisヒープをメモリマップファイルに配置することでこの動作をシミュレートする必要がありましたchild(quasi-forked)プロセスと共有できます。デフォルトでは、このファイルのサイズを物理メモリのサイズと同じに設定します。このファイルのサイズを制御するために、maxheapフラグを追加しました。このフラグの使用方法の詳細については、msvs\setups\documentationのRedis.Windows.confファイル(NuGetおよびChocolateyディストリビューションにも含まれています)。
これは古いスレッドであることはわかっていますが、ファイルサイズに関する同じ問題に直面しています。
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 を確認してください。
開発マシンでも同じ問題に直面しました。これは、redisサービスを停止することで解決し、WinDirStat(これは元々問題を検出するために使用したものです)を使用して、appdata/local/redisにあるこれらのファイルを完全に削除しました。
その後、redisのバックアップを開始したところ、問題はありませんでした。
この同じ手順を実行する前に、このデータが不要であることを他の人が確認したい場合があります。これは私の開発ワークステーションなので、私の場合はそれほど重要ではありませんでした。
DBをフラッシュするときは、メモリからキーのみをフラッシュします。なぜ別の名前のファイルがあるのかわかりません。これは、WindowsのRedisのポートの管理方法によるものかもしれませんが、キーを削除してもRedis自体はファイルを削除しません。 Redis外で古いファイルを管理する必要があります。