Skip to content

Latest commit

 

History

History
106 lines (88 loc) · 4.21 KB

about-redis.md

File metadata and controls

106 lines (88 loc) · 4.21 KB

redis

Представлен оффициальным образом redis

Используется основаный на alpine, с указанием тега последнией версии, например redis:5.0.7-alpine

Конфиг в docker-compose.yml представлен одноимённым сервисом redis

  redis:
    image: redis:5.0.7-alpine
    command: redis-server /etc/redis/conf.d/redis.conf --requirepass yii2advancedredis
    ports:
      - "6379"
    volumes:
      - ../redis-data:/data
      - ../redis-conf:/etc/redis/conf.d
    depends_on:
      - php-supervisor

Для связи с фреймворком используется yiisoft/yii2-redis

Возможное использование: очереди, кэш, сессии.

Настройка внутри приложения сводится к конфигурированию компонента redis: установка

return [
    //....
    'components' => [
        'redis' => [
            'class' => 'yii\redis\Connection',
            'hostname' => 'redis',
            'port' => 6379,
            'database' => 0,
        ],
    ]
];

соответственно, в случае использования пароля, нужно указать его в конфиге local

return [
    //....
    'components' => [
        'redis' => [
            'password' => 'yii2advancedredis',
        ],
    ]
];

Tip: Для IDE PHPStorm доступен плагин ledis для облегчния работы с redis

Хранение дампов, восстановление при перезапуске контейнера

Для ведения журнала AOF (лог операций) redis-data/appendonly.aof необходимо установить ключ режима Append Only File

    command: redis-server --requirepass yii2advancedredis --appendonly yes

Пример оптимизации настроек
О дампах и восстановлении

Снапшоты redis-data/dump.rdb делаются по времени. По умолчанию установлены параметры:

Создать копию, если было хотя бы одно изменение в течение 15 минут (900 секунд);
Создать копию, если в течение 5 минут (300 секунд) было хотя бы 10 изменений;
Создать копию, если за минуту было 10 000 изменений.

Для изменения параметров можно использовать пользовательский файл конфига redis, который необходимо указать первым параметром при запуске

    command: redis-server /etc/redis/conf.d/redis.conf --requirepass yii2advancedredis

Параметры запуска можно также указать в нём, см.примеры
redis-conf/redis.conf

# n.b.: Комментарии допустимы только в начале строки!

# Параметры по умолчанию
save 900 1
save 300 10
save 60 10000

# Имя файла
dbfilename dump.rdb
# Включение сжатия
rdbcompression yes

# Включить Append Only File
appendonly yes
# Имя файла
appendfilename "appendonly.aof"

Командная строка

Пример работы с cli для определения рабочих директорий (после docker-compose up -d)

$ docker-compose -f /home/dev/projects/docker-yii2-app-advanced-redis/docker-run/docker-compose.yml exec redis redis-cli
127.0.0.1:6379> auth yii2advancedredis
OK
127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/data"
127.0.0.1:6379>