در دنیای توسعه وب، مدیریت صحیح دادهها و بهینهسازی سرعت، دو عامل بسیار مهم برای موفقیت یک وبسایت یا اپلیکیشن هستند. اگر از سرویس هاست اشتراکی cPanel استفاده میکنید، احتمالاً با MySQL و شاید نام Redis برخورد کردهاید.
دیتابیس چیست و چرا به آن نیاز داریم؟
دیتابیس (Database) محلی برای ذخیرهسازی دائمی اطلاعات است.
هر وبسایت یا اپلیکیشنی که با اطلاعات کاربران، محصولات، مقالات یا تنظیمات سر و کار دارد، به دیتابیس نیاز دارد.
مثالهایی از دادههایی که در دیتابیس ذخیره میشوند:
- اطلاعات کاربران (نام، ایمیل، رمز عبور هششده)
- پستهای وبلاگ یا محصولات فروشگاه
- سفارشها، پرداختها و گزارشها
- تنظیمات سیستم
در هاستهای مبتنی بر cPanel معمولاً از:
- MySQL
- MariaDB
استفاده میشود که هر دو دیتابیس رابطهای (Relational) هستند.
Redis چیست؟

Redis یک پایگاه داده در حافظه (In-Memory) است، اما برخلاف MySQL برای ذخیره دائمی دادهها طراحی نشده است.
همچنین در این مقاله در هایدیتا، میتوانید اطلاعات کامل درمورد دیتابیس Redis و نحوه کارکرد آن دریافت کنید.
تفاوت MySQL و Redis
| MySQL | Redis |
|---|---|
| ذخیره دائمی داده | ذخیره موقت داده |
| مبتنی بر دیسک | مبتنی بر RAM |
| مناسب اطلاعات اصلی | مناسب کش و سشن |
| سرعت کمتر | بسیار سریع |
نکته ای که نیاز است به آن توجه کنیم این است که Redis جایگزین دیتابیس MySQL نیست، بلکه مکمل آن است.
اطلاعات اصلی در MySQL ذخیره میشوند و اطلاعات پرکابرد یا موقت در Redis نگهداری میشوند.
مرحله اول: ساخت دیتابیس در cPanel
- وارد پیشخوان cPanel در هاست خود شوید.
- در پیشخوان، از قسمت Databases گزینه Manage My 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);
// If your Redis requires auth:
// $redis->auth('YOUR_REDIS_PASSWORD');
// quick test
$redis->set('ping', 'pong', 10);
echo $redis->get('ping');
اتصال به دیتابیس Redis با استفاده از Node.js
در سرویس های cPanel میتوانید از طریق بخش Software و گزینه Setup Node.js App، اقدام به ایجاد و راه اندازی برنامه های Node.js کنید.
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",
});
// Example 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 میتوانید برنامه های پایتونی خود را در هاست خود اجرا کنید.
اجرای برنامه های پایتون در 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