Как стать автором
Обновить

Эволюция Redis в Valkey 8.0: разбираем архитектурные изменения с точки зрения производительности

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров5.8K
Всего голосов 27: ↑27 и ↓0+30
Комментарии4

Комментарии 4

А ещё бы примеров как юзать. Что то datagrip его как редис не распознал и не дал подключиться

А ещё бы примеров как юзать. Что то datagrip его как редис не распознал и не дал подключиться

Как сказано в статье, Valkey - это форк Redis, соответственно он работает и используется аналогично обычному Redis. Примеры использования можно найти на страницах библиотек, или если интересуют именно "сырые" команды, то на официальном сайте Valkey

Что касается ошибки в DataGrip, это происходит из-за того, что Redis JDBC драйвер не может найти нужную информацию для проверки режима соединения (в Redis это redis_mode, а в Valkey это server_mode, это можно увидеть на скриншоте ниже) и из-за этого выдает ошибку. Чтобы исправить нужно отключить режим проверки соединения (verifyConnectionMode) в настройках Redis JDBC драйвера внутри DataGrip.

Сравнение INFO SERVER valkey и redis
Сравнение INFO SERVER valkey и redis



Проверил с Redis Insight, Another Redis Dekstop Manager, а также с библиотеками ioredis для JS и redis для Python, во всех случаях ничего дополнительно менять или настраивать не пришлось и все работало из коробки. Так что, если библиотека или клиент не делает каких-либо доп. проверок информации о сервере, она, скорее всего, без проблем будет работать и с Valkey

Современные процессоры поддерживают предвыборку данных (prefetch).

Если инструкции, загружающие данные из памяти в регистры, расположены близко друг к другу, процессор не будет выполнять их последовательно.

вот здесь я не понял- а что было сделано чтобы это выполнялось? т.е как будто пропущено что было измененов в Valkey- как -то по другому хэш таблицы стали хранить или что?

В валкее начали эмбедить маленькие значения во внутренние структуры, помогает лишний раз не ходить в память, сейчас вроде хотят поднять порог размера значений наверх.

Также в 8.1 (он уже вышел) переехали на open-addressing таблицу, что-то в духе таблицы с доклада Гугла на cppcon.

Если интересует тема перформанса, советую почитать release notes и пострелять, очень интересно

Зарегистрируйтесь на Хабре, чтобы оставить комментарий