sunflowers, flowers, yellow flowers, petals, yellow petals, flora, blossom, beautiful flowers, bloom, flower wallpaper, clouds, flower background, nature

Redis RedisInsight Dockerコンテナ立上げ 設定・操作方法メモ

今回は、インメモリデータストアであるRedisと、
RedisのGUIツールRedis Insightを、Dockerコンテナでローカル動作させて利用する設定等のメモです。

バージョン

  • Docker Engine: 28.1.1
  • Compose: v2.35.1-desktop.1
  • redis:7-alpine

Docker Compose・Confファイル

今回は、RedisもRedisInsightもコンテナで立ち上げて利用します。

そのため、docker-compose.ymlを用意します。

docker-compose.yml


version: '3.8'

services:
  # Redisサービスの定義
  redis:
    # 使用するDockerイメージ(Redis 7のAlpine版)
    image: redis:7-alpine
    # コンテナ名の指定
    container_name: redis-practice
    # ポートマッピング(ホスト:コンテナ)
    ports:
      - "6379:6379"
    # ボリュームマウント
    volumes:
      # 名前付きボリューム(Redisのデータ永続化用/格納ディレクトリ)
      - redis-data:/data
      # ホストの設定ファイルをコンテナにマウント
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    # Redis起動時のコマンド(カスタム設定ファイルを使用)
    command: redis-server /usr/local/etc/redis/redis.conf
    # 再起動ポリシー(手動停止以外は自動再起動)
    restart: unless-stopped

  # RedisInsightサービスの定義(Redis管理用GUI)
  redisinsight:
    # 使用するDockerイメージ(RedisInsightの最新版)
    image: redis/redisinsight:latest
    # コンテナ名の指定
    container_name: redisinsight
    # ポートマッピング(ホスト:コンテナ)
    ports:
      - "5540:5540"
    # ボリュームマウント
    volumes:
      # 名前付きボリューム(Redisのデータ永続化用/格納ディレクトリ)
      - redisinsight-data:/data
    # 再起動ポリシー(手動停止以外は自動再起動)
    restart: unless-stopped
    # 依存関係の指定(redisサービスの起動を待つ)
    depends_on:
      - redis

# 名前付きボリュームの定義
volumes:
  # Redisのデータ保存用
  redis-data:
  # RedisInsightのデータ保存用
  redisinsight-data:

Redis confファイル

redis.conf


# Redis設定ファイル(学習用)

# バインドアドレス(全てのインターフェースからの接続を許可)
bind 0.0.0.0

# ポート番号
port 6379

# データベース数
databases 10

# 永続化設定(RDBファイルの保存条件)
# 900秒間に1回以上の変更があれば保存
save 900 1
# 300秒間に10回以上の変更があれば保存
save 300 10
# 60秒間に10000回以上の変更があれば保存
save 60 10000

# RDBファイル名
dbfilename dump.rdb

# データディレクトリ
dir /data

# AOF(Append Only File)永続化
appendonly yes
appendfilename "appendonly.aof"

# ログレベル(debug, verbose, notice, warning)
loglevel notice

# 最大メモリ設定(例:256MB)
maxmemory 256mb

# メモリが上限に達した時の動作
maxmemory-policy allkeys-lru

# maxmemory-policy オプションメモ 
# LRU系(最近使われていない順に削除)
# allkeys-lru        # 全キーから最も古いものを削除(現在の設定)
# volatile-lru       # 有効期限付きキーのみから最も古いものを削除

# # LFU系(使用頻度が低い順に削除)
# allkeys-lfu        # 全キーから最も使用頻度が低いものを削除
# volatile-lfu       # 有効期限付きキーのみから使用頻度が低いものを削除

# # ランダム削除
# allkeys-random      # 全キーからランダムに削除
# volatile-random     # 有効期限付きキーのみからランダムに削除

# # TTL系(有効期限が近い順に削除)
# volatile-ttl       # 有効期限付きキーのみから有効期限が近いものを削除

# # 削除しない
# noeviction         # 削除せず、書き込み時にエラーを返す(デフォルト)

Docker・Redis Insight コンテナ立ち上げ

以下コマンド等でコンテナを立ち上げます。

docker-compose up -d

docker desktop Redis Insight


Redis Insight アクセス

localhost:ポート番号(docker-compose.yamlで定義した)で、Redis Insightにアクセスできます。

docker Redis Insight access

初回は同意確認とPrivacy Settingsが表示されます。

docker Redis Insight privacy settings

Add Redis databaseから接続していきます。

docker Redis Insight connection

接続URLは、以下の形式で指定します。

  • 通常: redis://[username:password@]host:port[/db]
  • TLS有効: rediss://[username:password@]host:port[/db]

今回はパスワードなど設定していないので、redis://default@redis:6379で接続できます。

docker Redis Insight connection

接続できたら一覧に表示されますので、クリックして選択します。

docker Redis Insight database

何もデータ等も存在しないため、簡単なデータを追加・編集してみます。

docker Redis Insight add data

docker Redis Insight add data

追加できました。編集も行えますので、値を変更してみます。

docker Redis Insight edit data

docker Redis Insight edit data

docker Redis Insight edit data


redis-cli

先ほどまでの手順でRedisをコンテナ立ち上げできている場合、cliでも操作を行えます。

https://redis.io/docs/latest/develop/tools/cli/

以下コマンドやDocker DesktopのExec等でコマンド実行できます。

docker-compose exec redis redis-cli

docker desktop Redis Exec

Redis操作コマンドメモ

https://redis.io/docs/latest/develop/using-commands/


# 文字列の保存と取得
SET mykey "Hello Redis"
GET mykey

# キーの存在確認
EXISTS mykey

# キーの削除
DEL mykey

# TTL(有効期限)付きで保存(秒単位)
SET tempkey "temporary value" EX 60
TTL tempkey

# リストの操作
LPUSH mylist "world"
LPUSH mylist "hello"
LRANGE mylist 0 -1

# ハッシュの操作
HSET user:1000 name "Taro Yamada"
HSET user:1000 email "taro@example.com"
HGET user:1000 name
HGETALL user:1000

# セットの操作
SADD myset "apple"
SADD myset "banana"
SADD myset "orange"
SMEMBERS myset

# 全てのキーを表示
KEYS *

# データベースをクリア
FLUSHDB

今回のメモは以上となります。

Redisは、他のインメモリデータストアと同様によく使われています。
また、Redis公式が提供しているRedisInsightは色々なことができます。

RedisInsightできること

    • Redisへ接続・管理
    • Keyの一覧表示、検索、作成、編集、削除
    • String / Hash / List / Set / ZSet など各データ型の中身確認
    • Redisの状態確認(メモリ、接続数、統計など)
    • Slow Log や実行状況の確認
    • Pub/Sub の確認
    • Stream の閲覧・操作
    • KeyのTTL/有効期限の確認

 

  • バックアップやデータ移行の補助
  • 複数DBや複数インスタンスの管理

Redis特化のツールを探している場合オススメです。

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 192

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る