В мире веб-разработки правильное управление данными и оптимизация скорости являются двумя важнейшими факторами успеха веб-сайта или приложения. Если вы используете сервис cPanel Shared Hosting, вы, вероятно, сталкивались с MySQL и, возможно, с названием Redis.
Что такое база данных и зачем она нужна?
База данных (Database) – это место для постоянного хранения информации.
Каждый веб-сайт или приложение, работающее с информацией о пользователях, продуктах, статьях или настройках, нуждается в базе данных.
Примеры данных, которые хранятся в базе данных:
- Информация о пользователях (имя, электронная почта, хешированный пароль)
- Публикации в блоге или товары в интернет-магазине
- Заказы, платежи и отчеты
- Системные настройки
В хостингах на базе cPanel обычно используются:
- MySQL
- MariaDB
Используется, поскольку обе являются реляционными базами данных (Relational).
Что такое Redis?

Redis – это база данных в оперативной памяти (In-Memory), но в отличие от MySQL, она не предназначена для постоянного хранения данных.
Также в этой статье на HiData вы можете получить полную информацию о базе данных Redis и принципах ее работы.
Различия между MySQL и Redis
| MySQL | Redis |
|---|---|
| Постоянное хранение данных | Временное хранение данных |
| Основана на диске | Основана на оперативной памяти (RAM) |
| Подходит для основных данных | Подходит для кэширования и сессий |
| Меньшая скорость | Очень высокая скорость |
Важно отметить, что Redis не является заменой базы данных MySQL, а скорее ее дополнением.
Основные данные хранятся в MySQL, а часто используемые или временные данные – в Redis.
Шаг 1: Создание базы данных в cPanel
- Войдите в панель управления cPanel на вашем хостинге.
- В панели управления выберите Manage My Databases в разделе Databases.

- Введите имя базы данных и выберите опцию Create Database.

- Перейдите в нижнюю часть страницы и создайте пользователя базы данных (Database User) для вашей базы данных. Также в этом разделе необходимо установить пароль для этого пользователя.

- В разделе «Add User To Database» добавьте пользователя в свою базу данных. В этом разделе также необходимо настроить права доступа пользователя к базе данных.

Примечание: Префиксы имен в cPanel
В cPanel все базы данных и пользователи создаются в следующем формате:
username_databasename
username_dbuser
В части username указывается имя вашего cPanel хостинга. Поэтому при настройке своей базы данных необходимо использовать эту комбинацию имен.
Активация Redis в cPanel
- Войдите в панель управления cPanel вашего хостинга.
- В разделе «Software» выберите «Select PHP Version».

- В «Select PHP Version» убедитесь, что версия PHP вашего хостинга установлена не в «Native».

- Перейдите во вкладку Extensions и активируйте опцию Redis.

Обычно эта опция активирована по умолчанию на вашем хостинге. В сервисах cPanel база данных Redis создается в среде cagefs. В этом случае вам необходимо сохранить адрес, указывающий на файл redis.sock, на вашем хостинге.
Также в этой конфигурации Redis порт по умолчанию будет 0.
Подключение приложения к MySQL и Redis
После выполнения этапов настройки вы можете подключиться к базе данных Redis через ваше приложение.
Существует несколько различных примеров на разных языках программирования, которые вы можете использовать.
Обратите внимание, что вам необходимо ввести значения, относящиеся к хостингу и информации о его базах данных, в существующий код.
При подключении к Redis имя Database Host будет установлено как адрес, указывающий на файл redis.sock.
Подключение к базам данных MySQL и Redis с использованием PHP
В вашем PHP-коде вы можете подключаться к базам данных MySQL и Redis на вашем хостинге следующим образом:
MySQL (PDO):
<?php
$dbHost = "localhost";
$dbName = "cpaneluser_appdb";
$dbUser = "cpaneluser_appuser";
$dbPass = "YOUR_PASSWORD";
$pdo = new PDO(
"mysql:host=$dbHost;dbname=$dbName;charset=utf8mb4",
$dbUser,
$dbPass,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
Redis:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 0);
// Если для вашего Redis требуется аутентификация:
// $redis->auth('YOUR_REDIS_PASSWORD');
// Быстрый тест
$redis->set('ping', 'pong', 10);
echo $redis->get('ping');
Подключение к базе данных Redis с использованием Node.js
В сервисах cPanel вы можете создать и запустить приложения Node.js через раздел Software и опцию Setup Node.js App.
import mysql from "mysql2/promise";
import Redis from "ioredis";
const db = await mysql.createPool({
host: "localhost",
user: "cpaneluser_appuser",
password: "YOUR_PASSWORD",
database: "cpaneluser_appdb",
});
const redis = new Redis({
host: "localhost",
port: 0,
// password: "YOUR_REDIS_PASSWORD",
});
// Пример кэширования с использованием cache-aside
async function getUser(id) {
const key = `user:${id}`;
const cached = await redis.get(key);
if (cached) return JSON.parse(cached);
const [rows] = await db.query(«SELECT * FROM users WHERE id = ?», [id]);
const user = rows[0] ?? null;
if (user) await redis.set(key, JSON.stringify(user), «EX», 60);
return user;
}
Подключение к базе данных Redis с использованием Python
В cPanel, через опцию Setup Python App, вы можете запускать свои Python-приложения на хостинге.
Запуск Python-приложений в cPanel возможен с возможностью изменения версии Python и установки различных библиотек.
import json
import mysql.connector
import redis
db = mysql.connector.connect(
host="localhost",
user="cpaneluser_appuser",
password="YOUR_PASSWORD",
database="cpaneluser_appdb",
)
r = redis.Redis(host="localhost", port=0, decode_responses=True)
def get_user(user_id: int):
key = f"user:{user_id}"
cached = r.get(key)
if cached:
return json.loads(cached)
cur = db.cursor(dictionary=True)
cur.execute("SELECT * FROM users WHERE id=%s", (user_id,))
row = cur.fetchone()
cur.close()
if row:
r.setex(key, 60, json.dumps(row))
return row