メインコンテンツまでスキップ

Redis でよく使う UI ツール

· 約6分

Redis はクライアントでコマンドを実行してデータ情報を確認できますが、GUI ほど効率的ではありません。そこで、よく使われる Redis の UI ツールを何点か記録しておきます。

日常の開発で Redis を確認する場面は実は細々としています。ある key がちゃんと書き込まれたかの確認、シリアライズ後の value がどんな形かの確認、TTL が想定通りかのチェックなどです。redis-cli でももちろん全部できますが、keys / scantypettlget / hgetall の間を行ったり来たりするのは効率が良くありません。Hash や ZSet のような構造化データに出会うと、プレーンテキストの出力は読むのも一苦労です。手に馴染む GUI クライアントがあれば、これらの操作を一つの画面に集約でき、キー一覧、データ構造、TTL が一目瞭然になります。というわけで、使ったことのある何点かを記録しておけば、今後マシンを替えたときにそのままインストールできて便利です。

Redis Desktop Manager

有償で、半月の試用ができます。ネット上でクラック版を見つけることもできますが、バージョンは最新でない可能性があります。

RDM は老舗のツールと言えます。初期のバージョンはオープンソースで無料でしたが、後に有償サブスクリプションに転換して RESP.app に改名しました。多くの人が他の無料クライアントに乗り換えた理由でもあります。機能面では比較的充実しています。SSH トンネル、SSL 接続をサポートし、内蔵コンソールで直接コマンドを叩くことができ、各種データ型の表示もかなり成熟しています。会社が費用を負担してくれるなら、今でも堅実な選択肢です。

RESP.app (formerly Redis Desktop Manager) - GUI for Redis ® available on Windows, macOS, iPad and Linux.

AnotherRedisDesktopManager

オープンソースで無料、使いやすく、UI もシンプルで綺麗です。

名前からして RDM の有償化に対するちょっとした皮肉が込められています。売りは安定性です。大量の key をロードしてもフリーズやクラッシュをしません。この点は本番データベースの key が数百万に達するときに特に重要で、一括で全量を取得するのではなく scan による漸進的な走査を使っています。日常的に必要な機能は一通り揃っています。複数接続の管理、SSH/SSL、クラスタモード、コマンドラインターミナル、ダークテーマ、そして key を区切り文字でツリー状に折りたたんで表示できます。私自身、現在メインで使っているのはこれです。

GitHub - qishibo/AnotherRedisDesktopManager: 🚀🚀🚀A faster, better and more stable redis desktop manager [GUI client], compatible with Linux, Windows, Mac. What’s more, it won’t crash when loading massive keys.

QuickRedis

QuickRedis は永久無料の Redis 可視化管理ツールです。直接接続、Sentinel、クラスタモードをサポートし、億単位の key に対応、さらに心躍る UI を備えています。QuickRedis は Windows、Mac OS X、Linux で動作します。QuickRedis は効率化ツールです。他の人が必死にコマンドを叩いている間に、あなたはもうお茶を飲んでいる、というわけです。

Sentinel とクラスタモードへの対応はすぐに使える状態で、コマンドラインのように自分で MOVED リダイレクトを処理したりマスターノードを手動で探したりする必要がありません。本番環境のクラスタに接続する際にはかなり手間が省けます。画面はツリーディレクトリ形式で、key をコロン区切りで階層に組織します。業務プレフィックスで key を命名する習慣があるなら、とても快適に使えるでしょう。

GitHub - quick123official/quick_redis_blog: QuickRedis is a free forever Redis Desktop manager. It supports direct connection, sentinel, and cluster mode, supports multiple languages, supports hundreds of millions of keys, and has an amazing UI. Supports both Windows, Mac OS X and Linux platform.

ハマりどころと注意点

1)本番環境への接続は控えめに。GUI ツールでは数クリックで key の削除や value の変更ができてしまい、誤操作のコストはコマンドラインより低いのです。本番接続には読み取り専用アカウントだけを使うか、少なくとも接続名で明確に区別を付けて、テスト環境での操作の癖を本番に持ち込まないようにすることをおすすめします。

2)全量スキャンに注意。一部のクライアントはキー一覧の表示に scan ではなく keys * を使っており、大きなデータベースでは Redis のメインスレッドをブロックしてしまいます。ツール選びの際にはこの点に気をつけましょう。AnotherRedisDesktopManager はこの点で評判が良いです。

3)value の表示が文字化けするのは、たいていツールの問題ではありません。ビジネスコードが JDK シリアライズや Protobuf で書き込んだバイナリデータは、クライアントはバイト列をそのまま表示することしかできません。一部のツールはデシリアライズ方式の選択や JSON の整形をサポートしているので、使う前にそのオプションがあるか確認するとよいでしょう。

ヒント

リモートの Redis に接続するときは、6379 ポートを直接公開インターネットにさらすのではなく、SSH トンネル経由を優先しましょう。上記のツールはいずれも SSH 接続の設定をサポートしています。

まとめ

三つのツールのうち、RDM(RESP.app)は機能が最も充実していますが有償です。AnotherRedisDesktopManager はオープンソースで無料、安定していて手がかからず、デフォルトの選択肢に適しています。QuickRedis も同じく無料で、ツリー型の UI と Sentinel・クラスタ対応が光ります。ツール自体に絶対的な優劣はありません。手に馴染む一つを選んで、データ確認の時間を節約できればそれで十分です。

COMMENTS