4. CacheDBを利用する | IDCFクラウド ご利用ガイド

4. CacheDBを利用する

CacheDBにアクセスする

ここでは作成したCacheDBにアクセスするための手順を説明します。

redis-cliのインストール

CacheDBの操作はredis-cliというコマンドラインツールを用いて行います。CacheDBへ接続する経路を作成する で準備したコンピュートにredis-cliをインストールしてください。

redis-cliだけをインストールする場合

まずは試してみる等、redis-cliだけをコンピュートにインストールする場合はこちらの手順をご利用ください。redis-cliのバージョンをCacheDBで提供されるRedisのバージョンと揃える場合もこちらの手順をご利用ください。

redis-cliのソースコードをダウンロード

この例では「7.0.1」をインストールします。

最初にリリースページからCacheDBと同じバージョンのダウンロードURLを探し、URLを控えます。

https://download.redis.io/releases/redis-7.0.14.tar.gz

次に、wgetコマンドを用いてコンピュートにRedisのソースコードをダウンロードします。

$ wget https://download.redis.io/releases/redis-7.0.14.tar.gz

tarコマンドを用いてダウンロードしたtag.gzファイルを展開します。

$ tar -xzvf redis-7.0.14.tar.gz

cdコマンドを用いて展開したソースコードが存在するディレクトリに移動します。

$ cd redis-7.0.14/

以前別のバージョンをインストールしていた場合、過去の生成情報を削除します。今回が初めての場合、この手順はスキップしてください。

$ make distclean

makeコマンドを用いてソースコードをコンパイルします。makeコマンドが存在しない場合は先にmakeコマンドをインストールしてください。

# makeコマンドがない場合のインストール例

# Red Hat系
$ sudo yum install make

# Debian系
$ sudo apt install make

makeコマンドのインストールを確認した後、ソースコードのコンパイルを実行してください。

# makeコマンドの実行

$ make

/user/local/binディレクトリにコンパイルしたredis-cliのコマンドを配置します。

$ sudo cp ./src/redis-cli /usr/local/bin/

redis-cliコマンドの-vオプションを使い、redis-cliのバージョンを確認します。今回の例だと「redis-cli 7.0.14」の出力が得られれば成功です。

$ redis-cli -v
redis-cli 7.0.14

redis-cliを用いたCacheDBへのアクセス

redis-cliのインストール後、CacheDBへの接続をテストします。次のコマンドを入力します。

redis-cli -h エンドポイント -p エンドポイント末尾の数字部分 --user default --pass 作成画面で入力したパスワード INFO

Enterキーで実行後、結果が返ってくれば認証できています。

$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass パスワード INFO
create-cachedb.cachedb.idcfcloud.net:26789 > 
# 標準出力結果は省略

エンドポイントの確認方法

CacheDBの一覧から作成したCacheDBをクリックします。

エンドポイントの欄を確認します。

ユーザーとパスワード情報のマスキング

接続できたことを確認した後、ユーザーとパスワード情報をマスキングできるように設定することを強くおすすめします。実行履歴からパスワードを特定できる可能性があり、セキュリティ的な安全性が下がるためです。

AUTHコマンドを使う場合

redis-cliで接続後、AUTHコマンドを用いて接続情報を記録します。

# 接続後に実行
AUTH パスワード

ユーザー名も設定する場合、次のように接続情報を記録します。

# 接続後に実行
AUTH default パスワード

環境変数として設定する場合

環境変数REDISCLI_AUTHをログインシェルに設定すると、パスワード入力を省略できます。

# ログインシェルを編集する
vi ~/.bash_profile
# 追記
export REDISCLI_AUTH=パスワード

# 編集後、設定を反映
source ~/.bash_profile

トラブルシューティング

redis-cliで接続を試みたときevent not foundと出てきた

出力例

# パスワード「RedisGuide!2023」での実行例。eの後に「!」の文字列が入っている。

$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass RedisGuide!2023 INFO
-bash: !2023: event not found

bashでは記号にも意味があります。よって、パスワード内に含まれる記号を適切にエスケープしないと意図しない動作を引き起こす可能性があります。どちらかの修正方法を使い、bashがパスワード全体を文字列として処理できるようにしてください。

修正方法①

パスワード自体をシングルクォーテーションで囲みます。このようにすることで、パスワードに記号が含まれていても文字列として処理されます。

$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass 'RedisGuide!2023' INFO
修正方法②

パスワードの記号の直前にエスケープ文字(\)を置き、パスワード文字列として処理されるように修正します。Windowsでは¥、Macではoption + ¥でエスケープ文字を入力できます。

$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass RedisGuide\!2023 INFO

redis-cliを実行したときINFO Unrecognized option or bad number of args for: ‘xxx’ と出力された

出力例

$ redis-cli -h aishii-redis-test.cachedb.stga.idcfcloud-stg.net -p 26789 --user default --pass password INFO Unrecognized option or bad number of args for: '--user' 

redis-cliが古い可能性があります。次のコマンドを実行してバージョンを確認してください。バージョンによってオプションの指定方法が異なるため、このエラーが出力されている可能性があります。

redis-cli  -v または --help

–helpオプションを用いてバージョンを出力した例

$ redis-cli --help
redis-cli 5.0.7 // 5.0.7なので古い

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
... # 以降の出力結果は省略しています

この状況はredis-toolsを使ってredis-cliをインストールしたときに発生します。redis-cliのインストール 手順を参照して再インストールすると解消します。

Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe. と出力される。

$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass RedisGuide\!2023  INFO
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

redis-cliのコマンドラインにパスワードを直接記載していることが原因です。パスワードがコマンド実行履歴やプロセスの一覧に残ってしまうため、セキュリティ的に安全ではないことを示す警告です。 redis-cliを用いたCacheDBへのアクセス を参照してパスワードを標準入力に残さずに接続できるようにしてください。

Could not connect to Redis at エンドポイント:ポート No route to hostと出力されて接続できない

出力例

$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass RedisGuide\!2023 
# 出力結果を省略しています。
Could not connect to Redis at create-cachedb.cachedb.idcfcloud.net:54939: No route to host

接続情報が間違っている場合やネットワーク経路の設定に問題がある可能性があります。次のリストをご確認ください。解決しない場合はお問い合わせからチケットにてご連絡をお願いいたします。

redis-cliのオプションが正しいか確認する

  • エンドポイントは正しいですか?
  • ポート番号は正しいですか?
  • パスワードは正しいですか?

ネットワーク経路の設定に問題がないか確認する

  • iptablesなどで通信を遮断していませんか?
  • 名前解決はできていますか?nslookupコマンドやtelnetコマンドを用いて結果が返ってくるか確認してください。
nslookup エンドポイント
telnet エンドポイント エンドポイント末尾の数字部分
  • コンピュートのIPアドレスにスタティックNATを利用している場合、そのIPアドレスが送信元となります。接続元IPアドレスの指定を仮想マシンに紐づけされたIPアドレスとして指定していないかご確認ください。

CacheDBに値を保存する

接続できた後は値の保存や取り出しを自由に実行できます。

値の保存

SET キー 値

値の取得

GET キー 

コマンドの制限について

次のリストに存在するredis-cliコマンドは利用できません。 これは安定したマネージドサービスを提供するための制限事項となります。ご了承ください。

CacheDBの設定を変更する

各種設定を変更する場合、CacheDBの詳細画面から設定を変更します。✐マークをクリックすると、編集モードに変わります。

変更後「適用」ボタンをクリックしてください。

編集せずに終わる場合は「キャンセル」ボタンをクリックしてください。

CacheDBのリソースを監視する

Mackerel監視を設定する

CacheDBの一覧からリソース監視を設定したいCacheDBをクリックします。 CacheDBのステータスの下の欄にあるリソース監視アイコンをクリックします。

入力欄にMackerel API Keyを入力します。 「リソース監視を設定する」をクリックして適用します。

APIキーを作成していない場合はフォームの右下にある「Mackerel API Keyの確認はこちら」をクリックし、Mackerel API Keyを作成してください。

Mackerel API Keyを変更する

設定済みのMackerel API Keyを変更する場合は、CacheDBの一覧から対象のCacheDBをクリックし、CacheDBのステータスの下の欄にあるリソース監視アイコンをクリックします。 Mackerel API Key右の✐マークをクリックすると入力欄が表示されます。

変更したいAPI Keyを入力し、適用ボタンをクリックします。

Mackerel監視を解除する

リソース監視設定を解除する場合は、CacheDBの一覧から対象のCacheDBをクリックし、CacheDBのステータスの下の欄にあるリソース監視アイコンをクリックします。 「リソース監視を解除する」をクリックすると監視は解除されます。