Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как повысить производительность экземпляра гибкого сервера База данных Azure для MySQL с помощью Кэш Azure для Redis. Кэш Azure для Redis — это безопасный кэш данных и брокер обмена сообщениями, обеспечивающий высокую пропускную способность и доступ к данным с низкой задержкой для приложений.
Необходимые компоненты
Для целей этого краткого руководства понадобится:
- Учетная запись Azure с активной подпиской.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. В настоящее время с бесплатной учетной записью Azure можно попробовать База данных Azure для MySQL — гибкий сервер бесплатно в течение 12 месяцев. Дополнительные сведения см. в статье "Использование бесплатной учетной записи Azure", чтобы бесплатно попробовать База данных Azure для MySQL — гибкий сервер.
- Создание экземпляра гибкого сервера База данных Azure для MySQL с помощью краткого руководства. Создание экземпляра База данных Azure для MySQL с помощью портал Azure
или краткое руководство. Создание экземпляра База данных Azure для MySQL — гибкий сервер с помощью Azure CLI, если у вас его нет. - Настройте параметры сети экземпляра гибкого сервера База данных Azure для MySQL, чтобы убедиться, что IP-адрес имеет к нему доступ. Если вы используете службу приложение Azure или службу Azure Kubernetes, включите общедоступный доступ из любой службы Azure в Azure на этот параметр сервера в портал Azure.
Возникли проблемы? Поделитесь с нами
Заполнение базы данных MySQL
Подключитесь к Использованию MySQL Workbench с База данных Azure для MySQL — гибкий сервер и выполните следующий запрос, чтобы заполнить базу данных.
CREATE DATABASE tododb;
CREATE TABLE tasks
(
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
title nvarchar(100) NOT NULL,
completed TINYINT(1) NOT NULL
);
INSERT INTO tasks (id,title, completed) VALUES
(1,'Task1', 0),
(2,'Task2', 0),
(3,'Task3', 1),
(4,'Task4', 1),
(5,'Task5', 0);
Создание кэша Redis
На портале Azure найдите и выберите кэш Azure для Redis.
На странице кэша Azure для Redis выберите "Создать>кэш Azure для Redis".
На вкладке "Основы" страницы"Новый кэш Redis " настройте следующие параметры:
- Подписка. Выберите нужную подписку.
- Группа ресурсов: выберите группу ресурсов или нажмите кнопку "Создать" и введите новое имя группы ресурсов. Размещение всех ресурсов приложения в одной группе ресурсов позволяет легко управлять и удалять их вместе.
-
Имя: введите уникальное имя кэша в регионе. Имя должно быть:
- Должна быть строка длиной от 1 до 63 символов.
- Содержит только цифры, буквы и дефисы.
- Начните и закончите числом или буквой.
- Не содержит последовательные дефисы.
- Регион. Выберите регион Azure рядом с другими службами, используюющими кэш.
- Номер SKU кэша: выберите номер SKU , чтобы определить доступные размеры, производительность и функции кэша.
- Размер кэша: выберите размер кэша. Дополнительные сведения см. в статье Общие сведения о Кэше Azure для Redis.
Выберите вкладку "Сеть" или нажмите кнопку "Далее: Сеть".
На вкладке "Сеть" выберите метод подключения, используемый для кэша. Для обеспечения безопасности рекомендуется использовать частную конечную точку. Если выбрать частную конечную точку, выберите "Добавить частную конечную точку" и создайте частную конечную точку.
Выберите вкладку "Дополнительно" или нажмите кнопку "Далее".
На панели "Дополнительно" настройте следующие параметры:
- Выберите Microsoft Entra Authentication или Access Keys Authentication. Проверка подлинности Microsoft Entra включена по умолчанию.
- Выберите, следует ли включить порт, отличный от TLS.
- Для кэша уровня "Премиум" можно настроить или отключить зоны доступности. После создания кэша невозможно отключить зоны доступности. Для кэша уровня "Стандартный" зоны доступности выделяются автоматически. Зоны доступности недоступны для базовой SKU.
- Для кэша Premium настройте параметры для числа реплик, кластеризации и числа шардов, управляемого удостоверения, назначаемого системой, и сохранения данных.
На следующем рисунке показана вкладка "Дополнительно " для номера SKU "Стандартный".
Внимание
Используйте Microsoft Entra ID с управляемыми удостоверениями, чтобы авторизовать запросы к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемого удостоверения обеспечивает более высокую безопасность и проще использовать, чем авторизация общего ключа доступа. Дополнительные сведения об использовании управляемых удостоверений с кэшем см. в разделе "Использование идентификатора Microsoft Entra для проверки подлинности кэша".
При необходимости выберите вкладку "Теги " или нажмите кнопку "Далее" и введите имена тегов и значения, чтобы классифицировать ресурсы кэша.
Выберите "Просмотр и создание" и после прохождения проверки нажмите кнопку "Создать".
Развертывание нового кэша занимает несколько минут. Ход развертывания можно отслеживать на странице кэша Azure для Redis на портале. Когда состояние кэша отображается запущено, кэш готов к использованию.
Использование Redis с Python
Установите последнюю версию Python в локальной среде или на виртуальной машине Azure или службе приложение Azure. Используйте pip для установки redis-py.
pip install redis
Следующий код создает подключение к экземпляру Кэш Azure для Redis с помощью redis-py, сохраняет результат запроса в Кэш Azure для Redis и извлекает значение из кэша.
import redis
import mysql.connector
r = redis.Redis(
host='your-azure-redis-instance-name.redis.cache.windows.net',
port=6379,
password='azure-redis-primary-access-key')
mysqlcnx = mysql.connector.connect(user='your-admin-username', password='<password>',
host='database-servername.mysql.database.azure.com',
database='your-databsae-name')
mycursor = mysqlcnx.cursor()
mycursor.execute("SELECT * FROM tasks where completed=1")
myresult = mycursor.fetchall()
#Set the result of query in a key
if result:
cache.hmset(mykey, myresult)
cache.expire(mykey, 3600)
return result
#Get value of mykey
getkeyvalue= cache.hgetall(mykey)
#close mysql connection
mysqlcnx.close()
Использование Redis с PHP
Установите PHP в локальной среде. Выполните приведенные ниже действия, чтобы написать скрипт PHP, который кэширует SQL-запрос из базы данных гибкого сервера База данных Azure для MySQL. Ниже приведены некоторые предварительные требования перед выполнением скрипта:
- Установите и включите расширение PECL Redis для использования Кэш Azure для Redis с скриптом PHP. Узнайте , как установить расширение локально
- Установка и включение расширения PDO MySQL
<?php
$redis = new Redis();
$redis->connect('azure-redis-instance-ame.redis.cache.windows.net', 6379);
$redis->auth('azure-redis-primary-access-key');
$key = 'tasks';
if (!$redis->get($key)) {
/*Pulling data from MySQL database*/
$database_name = 'database-name';
$database_user = 'your-database-user';
$database_password = 'your-database-password';
$mysql_host = 'database-servername.mysql.database.azure.com';
$pdo = new PDO('mysql:host=' . $mysql_host . '; dbname=' . $database_name, $database_user, $database_password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM tasks";
$stmt = $pdo->prepare($sql);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$tasks[] = $row;
}
$redis->set($key, serialize($tasks));
$redis->expire($key, 10);
} else {
/*Pulling data from Azure Cache for Redis*/
$tasks = unserialize($redis->get($key));
}
echo $source . ': <br>';
print_r($tasks);
Использование Redis с WordPress
Преимущество включения Кэш Azure для Redis экземпляра в приложение WordPress позволит быстрее доставлять содержимое, так как все содержимое WordPress хранится в базе данных. Вы можете кэшировать содержимое, которое в основном считывается только из базы данных WordPress, чтобы ускорить поиск запросов. Для настройки Redis можно использовать любой из этих подключаемых модулей. Установите и включите расширение PECL Redis. Узнайте, как установить расширение локально или как установить расширение в службе приложение Azure.
Установите кэш объектов Redis и активируйте этот подключаемый модуль в нашем приложении WordPress. Теперь обновите файл прямо над инструкцией wp-config.php
/ Это все, остановите редактирование! Счастливый блог. /*
define( 'WP_REDIS_HOST', 'azure-redis-servername.redis.cache.windows.net' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', 'azure-redis-primary-access-key' );
define( 'WP_REDIS_TIMEOUT', 1 );
define( 'WP_REDIS_READ_TIMEOUT', 1 );
// change the database for each site to avoid cache collisions
// values 0-15 are valid in a default redis config.
define( 'WP_REDIS_DATABASE', 0 );
// automatically delete cache keys after 7 days
define( 'WP_REDIS_MAXTTL', 60 * 60 * 24 * 7 );
// bypass the object cache, useful for debugging
// define( 'WP_REDIS_DISABLED', true );
/* That's all, stop editing! Happy blogging. */
Перейдите на панель мониторинга администратора Wordpress и выберите страницу параметров Redis в меню. Теперь выберите включить кэш объектов. Подключаемый модуль считывает сведения о экземпляре Кэш Azure для Redis из wp-config.php
файла.
Вы также можете использовать кэш W3 Total для настройки Кэш Azure для Redis в приложении WordPress. Вы можете оценить улучшения производительности с помощью подключаемого модуля монитора запросов, что позволяет отлаживать запросы к базе данных, а также отображать общие запросы базы данных, сгруппированные по подключаемому модулю.