【Redis】Redashがredisのメモリ不足で落ちた
こんにちは。
Redashが吐き出したエラー
会社でRedashを使っているのですが、こいつがクエリを叩くたびに以下のようなエラーを出すようになりました。
Error running query: failed communicating with server. Please check your Internet connection and try again.
別にInternetのコネクションが悪いわけでもないので、色々調べてみることにしました。今回は、redisのメモリが少ないことで落ちていそうだったので*1、メモリを増やすと今の倍くらいお金かかっちゃうし*2、一旦redisの中身を一通り削除してみることにしました*3
redisをEC2から使う
今、Redashを弊社は自前でAWSでホスティングしています。AWSのElastiCacheのredisを使っていますので、そこに踏み台からアクセスをまずはします。
redisのインストール
EC2のインスタンスは、Amazon Linuxを使っていたので、以下のコマンドでredisをインストールします。
$ sudo yum --enablerepo=epel install redis
EC2からredisへの接続
$ redis-cli -h <host_name> -p 6379
keyの確認
$ keys *
メモリ使用量の確認
以下のコマンドでメモリ使用量を確認できます。
$ redis-cli -h <host_name> -p 6379 info memory
結果としては、以下のような感じで出てきます*4。
# Memory used_memory:xxxxxxxx used_memory_human:x.xxM used_memory_rss:xxxxxxxx used_memory_peak:xxxxxxxx used_memory_peak_human:x.xxG used_memory_lua:xxxxxxxx mem_fragmentation_ratio:x.xx mem_allocator:xxxxxxxxx
ここで、数値を確認したら、削除に入ります。
全てのキーのデータを削除する
以下のような感じで全部消せます
$ redis-cli KEYS "*" | xargs redis-cli DEL
確認
先ほどの、メモリ使用量に関するInfoを表示して、メモリの使用量が減っていることを確認して、減っていればOKです。Redashのアプリ自体はECSで動かしているのですが、削除後は、ECSの再起動が必要でした。