クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
AWS

AmazonLinuxにRedisクライアントをインストールする

AWS で ElastiCache(Redis)を使おうと思って、そこへ接続するために Redis クライアントをインストールしました。

RDB 同様、データ量が多くなるとコマンドラインでは不便な場面も出てきますが、目的のキー名がある程度分かっていればコマンドラインでも十分です。

今回は Redis クライアントのインストールとコマンドラインからの使用方法を紹介します。

Redisクライアントのインストール

残念ながら、デフォルトで yum の対象となっているリポジトリには redis 本体のパッケージがありません。

$ yum search redis

perl-Redis.noarch : Perl binding for Redis database
php54-pecl-redis.x86_64 : Extension for communicating with the Redis key-value store
php55-pecl-redis.x86_64 : Extension for communicating with the Redis key-value store
php56-pecl-redis.x86_64 : Extension for communicating with the Redis key-value store
php70-pecl-redis.x86_64 : Extension for communicating with the Redis key-value store
php71-pecl-redis.x86_64 : Extension for communicating with the Redis key-value store

よって、remi のエンドポイントを追加します。

$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

これで、redis がインストールできるようになります。

$ yum search --enablerepo=remi redis

redis.x86_64 : A persistent key-value database

redis をインストールします。

$ yum -y --enablerepo=remi install redis

Installed:
  redis.x86_64 0:4.0.10-1.el6.remi 

この時点ではバージョンも 4.0.10 なので、ElastiCache と同じメジャーバージョンですね。

ElastiCache の設定は以下の通り。

あわせて読みたい
AWSでElastiCache(Redis)を使用するデータベースの負荷を下げるというのは、まだ Web サービスが少なかった 20 年以上も前から叫ばれていたことです。 今では We...

ElastiCacheのセキュリティグループ設定

ElastiCache の Redis インスタンスを構築した際、VPC のデフォルトセキュリティグループを設定しました。

このタイミングで Redis 用のセキュリティグループを作成します。

EC2 でも VPC のメニューからでもいいですが、セキュリティグループの一覧から「セキュリティグループの作成」ボタンをクリックします。

VPC で管理しているセグメントから 6379 番ポートにフルアクセスの許可をします。

VPC 内なのでポート指定する必要もないですが、ここでは念のため厳密に 6379 番ポートを指定しておきます。

このセキュリティグループを Redis のインスタンスに適用します。

Redis の設定画面から「変更」ボタンをクリックしてセキュリティグループの鉛筆マークから変更します。

今回はこのタイミングでセキュリティグループの変更を行いましたが、本来なら Redis のインスタンスを作成する前にセキュリティグループを作っておくのがベターでしょう。

Redisクライアントのコマンド(使い方)

使い方は、AWS の場合は ElastiCache のエンドポイントが発行されるので、そこの 6379 番ポートへ接続するだけです。

ざっくり、Redis の状態を見るためには info コマンドを送ります。

$ redis-cli -h [エンドポイント] info

info の結果で見るのは、connected_clients や used_memory が多いかもしれませんが、この辺は AWS のマネジメントコンソールのブラウザ画面でも確認できると思います。

# Clients
connected_clients:4
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:3787488
used_memory_human:3.61M
used_memory_rss:6402048
used_memory_rss_human:6.11M
used_memory_peak:3909520
used_memory_peak_human:3.73M
used_memory_peak_perc:96.88%
used_memory_overhead:3762796
used_memory_startup:3662144
used_memory_dataset:24692
used_memory_dataset_perc:19.70%
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:436469760
maxmemory_human:416.25M
maxmemory_policy:volatile-lru
mem_fragmentation_ratio:1.69
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0

Redisでよく使うコマンド

よく使うのは、keys や運用時に削除したくなった際の del、ハッシュやリストを使う場合は少しコマンドの構成が複雑になるので、その場合はブラウザベースのツールで中身が扱えると楽かもしれません。

また、データ量が多くなると、ワイルドカード検索は遅くなるので注意しましょう。

# 全キー表示
$ redis-cli -h [エンドポイント] keys '*'

# 特定のキーの中身(value)を表示
$ redis-cli -h [エンドポイント] get 'hogehoge'

# キーの有効期限確認
$ redis-cli -h [エンドポイント] ttl 'hogehoge'

# キーの削除
$ redis-cli -h [エンドポイント] del 'hogehoge'

# 該当キーの一括削除
$ redis-cli -h [エンドポイント] keys 'hogehoge*' | xargs redis-cli -h [エンドポイント] del

コンソール上で日本語のマルチバイト文字が見れない場合は、iconv や nkf などで変換しちゃいましょう。

$ redis-cli -h [エンドポイント] get 'hogehoge' | iconv -t UTF8
Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/09/21 11:58:20時点 Amazon調べ-詳細)

あなたにオススメ