Docker-Compose 環境に、Redis を入れる
今度は NoSQL として有名?な Redis を入れてみる。
NoSQL、Redisの詳しい話は、参考サイトを見てもらうとして。
NoSQL って何?
- Not only SQL の略
- 逆に、YeSQL なんてのもあるらしい
NoSQL - Wikipedia
NoSQL(一般に "Not only SQL" と解釈される)とは、関係データベース管理システム (RDBMS) 以外 のデータベース管理システムを指す おおまかな分類語 である。関係データベースを杓子定規に適用してきた長い歴史を打破し、それ以外の構造のデータベースの利用・発展を促進させようとする 運動の標語 としての意味合いを持つ。
Redis って何?
- NoSQLデータベースの一つ
- 今回の場合とかみたいに、KVS(キーバリューストア)として使われたりする
- RDBと比べて高速で処理が出来たりする
- RDBと組み合わせて使ったりもする
Redis - Wikipedia
Redisは、ネットワーク接続された永続化可能なインメモリデータベース。連想配列、リスト、セットなどのデータ構造を扱える。いわゆるNoSQLデータベースの一つ。オープンソースソフトウェアプロジェクトであり、Redis Labsがスポンサーとなって開発されている。
Redisをインストールする
フォルダは作っておく
mkdir RedisTest
cd RedisTest
docker-compose.yml を書く
docker-compose.yml の中身はコレ。
version: '3'
services:
#Redis
redis:
image: "redis:latest"
ports:
- "6379:6379"
volumes:
- "./data/redis:/data"
後で気づいたんだけど、この「Volumes」の項目が、
『データの永続化』をする際にどこに保存しておくかの設定のようだ。
この項目が存在しない場合、 docker-compose down -> docker-compose up すると、
Redisのデータが消えます。Redisのデータは通常はキャッシュとして扱うようなので、
消えても良いのが理想らしいのだけど、意図するかどうかは意識した方が良さそう。
Docker-Compose で Redis 起動
docker-compose up -d --build
Docker起動確認
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------
mysqltest_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
Redis 確認
$ docker exec -it mysqltest_redis_1 bash
root@ec5fc90e5ee3:/data# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
中身が無いのが確認出来た。データとかはこれから。
参考
- NoSQLについて勉強する。
- RDBMSの苦手な処理をカバーする、気の利いたNoSQL「Redis」
- RedisとElastiCacheを分かりやすくまとめてみた
- Redisの特徴について容易にまとめてみた