MySQL-Redis
MySQL-Redis — это UDF (пользовательский плагин для MySQL), который позволяет работать с Redis в MySQL, но не может функционировать отдельно от MySQL.
Плагин MySQL-Redis можно скомпилировать на операционной системе, которая поддерживает стандартный компилятор C99. Однако ограничения среды поддержки hiredis-vip ограничивают область применения MySQL-Redis.
Да, MySQL-Redis может работать как с отдельным экземпляром Redis, так и с его кластером. Единственное отличие заключается в функциях MySQL.
Производительность зависит от сети. Плагин работает быстро при взаимодействии с Redis благодаря использованию языка C.
Можно использовать в ситуациях, где требуется согласованность данных между Redis и MySQL.
SELECT RedisConnect("127.0.0.1", 6379);
SELECT RedisClusterConnect("127.0.0.1:6379,127.0.0.2:6379");
Несколько машин разделяются запятой.
SELECT RedisConnectFree();
SELECT RedisClusterConnectFree();
SELECT RedisSet("a", 1); — эквивалентно SET a 1 в Redis.
RedisClusterSet — установка пары ключ-значение для кластера Redis. Параметры аналогичны функции RedisSet.
RedisExecCommand — выполняет команду Redis. Включает три или два параметра. Пример SQL:
Три параметра:
SELECT RedisExecCommand("SET", "a", 1).
Два параметра:
SELECT RedisExecCommand("SELECT", 1).
RedisClusterExecCommand — выполнение команды Redis для кластера. Параметры аналогичны RedisExecCommand.
RedisRawCommand — выполняет полную команду Redis. SQL-код:
SELECT RedisRawCommand("SET Hello World").
RedisClusterRawCommand — выполнение полной команды Redis для кластера. Параметры аналогичны RedisRawCommand.
RedisListIndex — получает элемент из структуры данных Redis List. Первый параметр представляет структуру данных, второй — индекс элемента. Пример:
SELECT RedisListIndex(RedisRawCommand("LRANGE score_lists 0 10"), 1).
SELECT RedisListJoin(RedisRawCommand("LRANGE score_lists 0 10"), "-").
Если структура Redis List выглядит следующим образом:
0 1 2
то результат объединения будет:
0-1-2.
В случае успешного выполнения функций RedisSET, RedisClusterSet, RedisConnect, RedisConnectFree, RedisClusterConnect и RedisClusterConnectFree возвращается значение 1, иначе SQL-оператор считается ошибочным.
Функции RedisExecCommand, RedisClusterExecCommand, RedisRawCommand, RedisClusterRawCommand, RedisListIndex и RedisListJoin возвращают строку. Если команда Redis SET выполнена успешно, возвращается «OK». При выполнении GET возвращается конкретное значение.
Необходимые условия:
— установлены Redis, MySQL (версия 5.7.22 для разработки) и hiredis-vip.
После подготовки необходимых условий можно приступить к установке плагина MySQL-Redis:
git clone https://gitee.com/josinli/mysql_redis.git.
cmake_minimum_required(VERSION 3.13) project(udf_redis C)
set(CMAKE_C_STANDARD 99)
include_directories( . /usr/local/mysql/include/ # измените эту строку на путь к каталогу заголовков вашей системы MySQL /usr/local/include/hiredis-vip # измените эту строку на путь к каталогу заголовков hiredis-vip вашей системы )
link_directories( /usr/local/lib # измените эту строку на каталог lib hiredis-vip вашей системы )
add_library(udf_redis SHARED mysql_redis.c mysql_redis.h)
target_link_libraries(udf_redis hiredis_vip)
cd build cmake .. make.
Вы увидите, что в каталоге build создан файл библиотеки libudf_redis.so или libudf_redis.dylib.
SHOW VARIABLES LIKE 'plugin_dir%';.
Скопируйте файл libudf_redis.sо или libudf_redis.dylib из предыдущего шага в каталог, указанный в предыдущем запросе.
В зависимости от вашей операционной системы скопируйте create_function_linux.sql или create_function_osx.sql и выполните его.
Перезапустите MySQL и начните использовать Redis через SQL!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )