點燈坊

失くすものさえない今が強くなるチャンスよ

使用 Docker 執行 Redis

Sam Xiao's Avatar 2019-11-20

Redis 為常用的 In-Memory Key Value Database,適合用來當 Cache 輔助 Database,傳統會使用 Homebrew 安裝 macOS 版 Redis,本文介紹使用 Docker 執行 Redis。

Version

Redis 5.0.6
Redis CLI 1.3.1

Docker Compose

version: "3"

services:
  redis:
    image: redis:latest
    container_name: MyRedis
    volumes:
      - ${REDIS_HOST_DIR}:/data
    ports:
      - ${REDIS_PORT}:6379
    restart: always

第 5 行

image: redis:latest

使用 Redis 最新版 image。

第 6 行

container_name: MyRedis

使用 container_name 定義 container 名稱為 MyRedis

第 7 行

volumes:
  - ${REDIS_HOST_DIR}:/data

設定 Redis database 實際儲存在 macOS 路徑,避免 container 結束後 database 也跟著刪除。

第 9 行

ports:
  - ${REDIS_PORT}:6379

設定 Redis 對外使用 host os 的 port。

Environment Variable

REDIS_HOST_DIR=.redis
REDIS_PORT=6379

建立 .env 設定 docker-compose.yml 所需環境變數。

  • REDIS_HOST_DIR:設定 Redis database 要存到 Host OS 位置
  • REDIS_PORT:設定 Redis 對應到 Host OS 的 port

Start Redis

$ docker-compose up -d

使用 docker-compose up -d 啟動 Redis。

redis000

Redis CLI

$ yarn global add redis-cli

使用 Yarn 在 global 安裝 Redis CLI。

$ rdcli -h localhost -p 6379
localhost:6379> ping

輸入 rdcli 連上 Redis。

  • -h:指定 Redis 的 host name
  • -p:指定 Reds 的 port

在 Redis CLI 輸入 ping,若回應 PONG 則表示 Redis 安裝成功。

redis001

localhost:6379>set hello world
localhost:6379>get hello
  • 使用 set 建立 key / value,第一個 argument 為 key,第二個 argument 為 value

  • 使用 get 取得 value,其 argument 為 key

redis002

TablePlus

redis003

若想用 GUI 連接 Redis,可使用 TablePlus

按右鍵 New -> Connection...

redis003

TablePlus 支援多種 database,選擇 RedisCreate

redis005

  • Hostlocalhost
  • Port 預設為 6379 不用修改
  • Password 選擇 No password

最後按 Connect 連上 Redis。

redis006

左側 items 選擇 db0,右側可看到剛剛建立的 helloworld

Conclusion

  • Docker 可快速建立 Redis 開發環境,並以 Redis CLI 或 TablePlus 管理 Redis

Reference

Lu Jiajing, Redis CLI
TablePlus, Best Redis CLI Client for Mac