> For the complete documentation index, see [llms.txt](https://handbook.novice.solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.novice.solutions/tools/database/redis/redis-on-docker-compose-lv.1.md).

# Redis on Docker Compose (LV.1)

ใน session นี้เราจะสร้าง standalone redis โดยใช้ image จาก bitnami\
เนื่องจาก image ของ bitnami มีการ custom entrypoint script ไว้เยอะ จึงช่วยให้ใช้งานผ่านการ set ENV ต่างๆได้ง่ายกกว่าการใช้ redis image จากของ official โดยตรง

ทำการสร้างไฟล์ docker-compose.yml โดยมี content ดังนี้

{% tabs %}
{% tab title="without password" %}

```yaml
services:
  redis:
    image: bitnami/redis:7.4
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - redis-data:/bitnami/redis/data
    ports:
      - 6379:6379
  redis-exporter:
    image: oliver006/redis_exporter
    environment:
      - REDIS_ADDR=redis://redis:6379
    ports:
      - 9121:9121
volumes:
  redis-data:
```

{% endtab %}

{% tab title="with password" %}

```yaml
services:
  redis:
    image: bitnami/redis:7.4
    environment:
      - REDIS_PASSWORD=mysecret
    volumes:
      - redis-data:/bitnami/redis/data
    ports:
      - 6379:6379
  redis-exporter:
    image: oliver006/redis_exporter
    environment:
      - REDIS_ADDR=redis://redis:6379
      - REDIS_PASSWORD=mysecret
    ports:
      - 9121:9121
volumes:
  redis-data:
```

{% endtab %}
{% endtabs %}

deploy ด้วยการสั่ง compose up

```bash
docker compose up -d
```

{% hint style="info" %}
จากตัวอย่างจะมีการ deploy redis exporter ด้วย เพื่อให้ tools observability มาอ่านข้อมูลสถานะของ redis ไปได้
{% endhint %}
