Another Redis Benchmark

Posted on Nov 18, 2024

Мотивация

Мне понадобилось протестировать работу redis с windows хоста, а готовых инструментов не было. Так появился Another Redis Benchmark

Описание

Исходники: https://github.com/itcaat/another-redis-benchmark

Another Redis Benchmark — это утилита для тестирования производительности Redis, написанная на языке программирования Go. Программа имитирует реальную нагрузку на Redis-сервер, выполняя различные операции (SET, GET, DEL) и измеряя их производительность.

Программа может быть полезна для:

  • Оценки производительности Redis-сервера
  • Тестирования конфигурации Redis под нагрузкой
  • Сравнения производительности различных конфигураций и версий Redis
  • Определения оптимальных настроек для конкретных сценариев использования Redis

Основные возможности

  1. Имитация реальной нагрузки — программа создает несколько параллельных клиентов, которые одновременно выполняют операции с Redis.

  2. Конфигурируемые параметры — возможность настройки:

    • Адреса и данных для подключения к Redis-серверу
    • Количества одновременных клиентов
    • Количества уникальных ключей
    • Продолжительности теста
    • Соотношения операций SET, GET и DEL
    • TTL (время жизни) для ключей
  3. Сбор и анализ статистики — программа измеряет:

    • Общее количество выполненных операций
    • Среднюю скорость выполнения операций в секунду
    • Минимальную, среднюю и максимальную задержку (latency) для каждого типа операций
    • Объем отправленных и полученных данных
  4. Отслеживание прогресса в реальном времени — показывает количество выполненных операций для каждого клиента во время работы теста.

Принцип работы

  1. Программа создает указанное количество параллельных клиентов для Redis.
  2. Каждый клиент случайным образом выбирает операцию (SET, GET или DEL) в соответствии с заданным соотношением.
  3. Операции выполняются на случайных ключах из заранее сгенерированного списка.
  4. Программа измеряет время выполнения каждой операции и обновляет статистику.
  5. По окончании теста выводится подробный отчет с результатами.