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 作成画面で入力したパスワード
Enterキーで実行後、結果が返ってくれば認証できています。
$ redis-cli -h create-cachedb.cachedb.idcfcloud.net -p 26789 --user default --pass パスワード
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の詳細画面から設定を変更します。✐マークをクリックすると、編集モードに変わります。
変更後「適用」ボタンをクリックしてください。
編集せずに終わる場合は「キャンセル」ボタンをクリックしてください。