Прямое сравнение пропускной способности
В тесте HotKV Ltd, где HotKV, Redis, Valkey и Dragonfly запускались на одном облачном экземпляре, HotKV показал наибольшую медианную пропускную способность на 11 из 12 команд. На PING Dragonfly показал результат на 0,6% выше, что укладывается в предел генераторов нагрузки, поэтому мы считаем это ничьей. Эти результаты относятся к протестированным сборкам и настройкам. См. методику ниже.
- Одна и та же машинаКаждый сервер работает на одном и том же экземпляре, по одному за раз.
- Отдельные генераторы нагрузкиНагрузку создают выделенные клиентские машины, а не сам сервер.
- Одинаковые настройкиКаждый сервер получает одинаковое число потоков и никакой другой настройки.
- Медиана из 3 запусковКаждая команда выполняется три раза. Показана медиана.
- Ограничения отмеченыРезультаты, заданные сетью или генераторами нагрузки, помечены.
- Полная методикаКаждая настройка, ограничение и оговорка описаны под результатами.
- Процессор:
- AMD EPYC 9V45 (Turin)
- vCPU:
- 160
- Архитектура:
- x86_64
- ОЗУ:
- 314,8 GB
- Сеть:
- 78 Гбит/с на выход, 132+ Гбит/с на вход
- Потоки:
- 160 на сервер (Redis 128, его максимум)
- Измерено:
- 9 октября 2026 г.
Операций в секунду, медиана из 3 запусков. Каждая полоса масштабирована по самому быстрому серверу на этой команде.
- Лучший результат на этой команде.
- Ограничено сетью: результат определила сеть экземпляра, поэтому собственный предел сервера выше.
- Ограничено генератором нагрузки: машины-генераторы нагрузки работали при загрузке процессора выше 85%, поэтому это их предел, а не предел сервера.
- Azure ограничивает исходящий трафик: iperf3 измерил 78 Гбит/с на выход и не менее 132 Гбит/с на вход при трёх клиентских машинах. GET и MGET отправляют значения наружу. GET у HotKV использовал 88% исходящего лимита, поэтому это нижняя граница, заданная экземпляром, а не предел сервера, а его MGET, с 83%, близок к нему. Чтения Dragonfly использовали не более 44% лимита.
- Записи приходят на вход, поэтому результаты записи - это показатели сервера. Самая тяжёлая из них, SETNX, около 106 Гбит/с, использовала около 80% входного предела, так что показатели записи HotKV следует считать умеренными нижними границами.
- На PING генераторы нагрузки достигли 86% загрузки процессора с HotKV и 82% с Dragonfly. Разница в 0,6% между ними укладывается в этот предел, поэтому PING - ничья.
Точные значения для Azure D160alds_v7
| Команда | HotKV | Redis | Valkey | Dragonfly | HotKV против Redis | HotKV против Valkey | HotKV против Dragonfly |
|---|---|---|---|---|---|---|---|
| SET | Лучший результат: 50,480,621 | 3,409,794 | 2,882,486 | 15,042,258 | 14.80x | 17.51x | 3.36x |
| GET | Лучший результат: 36,643,656(Ограничено сетью) | 1,132,934 | 1,631,573 | 13,446,228 | 32.34x | 22.46x | 2.73x |
| MGET | Лучший результат: 4,617,382 | 277,956 | 536,872 | 2,348,137 | 16.61x | 8.60x | 1.97x |
| SETNX | Лучший результат: 55,333,360 | 1,397,967 | 1,860,919 | 14,442,422 | 39.58x | 29.73x | 3.83x |
| APPEND | Лучший результат: 25,050,648 | 1,530,680 | 1,290,421 | 8,858,165 | 16.37x | 19.41x | 2.83x |
| INCR | Лучший результат: 90,783,545 | 2,104,069 | 1,918,073 | 20,603,259 | 43.15x | 47.33x | 4.41x |
| LPUSH | Лучший результат: 31,617,779 | 1,247,914 | 842,106 | 10,579,641 | 25.34x | 37.55x | 2.99x |
| RPUSH | Лучший результат: 43,776,706 | 628,324 | 878,476 | 11,014,977 | 69.67x | 49.83x | 3.97x |
| SADD | Лучший результат: 50,626,647 | 2,053,737 | 894,438 | 12,044,417 | 24.65x | 56.60x | 4.20x |
| HSET | Лучший результат: 28,997,514 | 536,527 | 781,768 | 9,797,534 | 54.05x | 37.09x | 2.96x |
| MSET | Лучший результат: 11,275,369 | 378,641 | 464,801 | 2,941,342 | 29.78x | 24.26x | 3.83x |
| PING | 125,232,520(Ограничено генератором нагрузки) | 3,235,600 | 3,480,446 | Лучший результат: 126,033,542 | 38.70x | 35.98x | 0.99x |
Быстрее векторных наборов Redis 8 в нашем тесте
Мы загрузили одни и те же эмбеддинги OpenAI в HotKV и Redis 8 и выполнили к каждому одни и те же 1 000 запросов при 1-100 одновременных клиентских соединениях на одной машине. Оба хранили векторы полной точности с одинаковыми настройками индекса.
Запросов в секунду при одинаковой полноте
Оба движка хранили векторы float32 полной точности. После загрузки 999 000 векторов процесс HotKV занимал 6,77 ГБ, а Redis - 7,01 ГБ.
Не измерялись: режим 8-битного квантования Redis по умолчанию, Redis Query Engine, другие наборы данных и другое оборудование. Сборка HotKV - это сборка для разработки, которая не выпускалась. Redis загружался с привязкой к четырём vCPU, а поиск выполнялся на перезагруженном индексе (см. статью).
Полные цифры: 999 000 векторов, Клиентов: 50
| ef | Полнота HotKV | Полнота Redis | HotKV, запросов/с | Redis, запросов/с | Отношение |
|---|---|---|---|---|---|
| 40 | 0,940 | 0,923 | 63 897 | 8 061 | 7,9x |
| 80 | 0,970 | 0,962 | 37 508 | 6 825 | 5,5x |
| 150 | 0,987 | 0,980 | 21 912 | 5 241 | 4,2x |
| 300 | 0,993 | 0,990 | 12 393 | 3 454 | 3,6x |
| 500 | 0,997 | 0,994 | 7 688 | 2 483 | 3,1x |
Сборка HotKV c8dafd37 и Redis 8.10.2, сходство косинусное, HNSW с M=16 и ef_construction=200 на обоих, float32 на обоих (Redis NOQUANT). Полнота - это recall@10 относительно точных результатов полного перебора. Медиана из 3 запусков на Azure Standard_D160alds_v7, AMD EPYC 9V45, 160 vCPUs. Серверы делили 128 vCPU, а генераторы нагрузки работали на 32 других, с одним и тем же клиентским кодом для обоих.
Набор данных: эмбеддинги dbpedia-entities-openai-1M (OpenAI text-embedding-ada-002, 1 536 измерений), автор Kumar Shivendu and Nirant Kasliwal, лицензия MIT, плюс 1 000 отложенных запросов. Полная методика, скрипты и исходные результаты. Измерено 14 октября 2026 г..
Готовы запустить HotKV в работу?
Получите ранний доступ и изучите HotKV на своей нагрузке.
Получить ранний доступ