نصب و پیکربندی Redis روی سرور مجازی برای افزایش سرعت سایت
وقتی سایت شما شلوغ میشود، معمولاً اولین چیزی که کند میشود دیتابیس است. Redis یک پایگاه داده در حافظه (in-memory) است که نتایج پرتکرار را در رم نگه میدارد تا بهجای اجرای دوباره کوئری سنگین، پاسخ در چند میکروثانیه برگردد.
Redis دقیقاً چه کاری میکند؟
فرض کنید صفحه اصلی فروشگاه شما برای نمایش محصولات، ۲۰ کوئری به MySQL میزند و ۸۰۰ میلیثانیه طول میکشد. با Redis نتیجه یک بار محاسبه و در رم ذخیره میشود؛ درخواستهای بعدی در حدود ۵ میلیثانیه پاسخ میگیرند. کاربردهای رایج:
- کش کوئریهای دیتابیس (Object Cache در وردپرس)
- نگهداری session کاربران
- صف کارها (queue) برای پردازشهای سنگین
- شمارندهها و محدودیت نرخ درخواست
قدم ۱: نصب
apt update
apt install redis-server -y
بررسی وضعیت:
systemctl status redis-server
redis-cli ping
اگر پاسخ PONG گرفتید، Redis در حال اجراست.
قدم ۲: پیکربندی پایه
nano /etc/redis/redis.conf
این موارد را تنظیم کنید:
bind 127.0.0.1 ::1
supervised systemd
maxmemory 256mb
maxmemory-policy allkeys-lru
توضیح مهمترینها:
bind 127.0.0.1: Redis فقط از داخل سرور در دسترس باشد. این خط حیاتی است — Redis باز روی اینترنت یکی از رایجترین راههای هک شدن سرورهاست.maxmemory: سقف مصرف رم. متناسب با رم سرور تنظیم کنید (مثلاً یکچهارم کل رم).maxmemory-policy allkeys-lru: وقتی حافظه پر شد، قدیمیترین و کماستفادهترین کلیدها حذف شوند — رفتار درست برای کش.
سپس ریاستارت کنید:
systemctl restart redis-server
قدم ۳: تنظیم رمز عبور
حتی وقتی Redis فقط روی لوکالهاست است، گذاشتن رمز لایه امنیتی خوبی است. در فایل کانفیگ:
requirepass یک_رمز_قوی_و_طولانی
بعد از ریاستارت، اتصال اینطور خواهد بود:
redis-cli
AUTH یک_رمز_قوی_و_طولانی
PING
قدم ۴: اتصال وردپرس به Redis
ابتدا افزونه PHP را نصب کنید:
apt install php-redis -y
systemctl restart php8.1-fpm
سپس در وردپرس افزونه Redis Object Cache را نصب و فعال کنید. اگر رمز گذاشتهاید، در wp-config.php اضافه کنید:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'رمز_شما');
در تنظیمات افزونه روی Enable Object Cache بزنید. برای فروشگاههای ووکامرس، این تغییر معمولاً محسوسترین بهبود سرعت را میدهد.
قدم ۵: بررسی عملکرد
redis-cli info stats | grep keyspace
redis-cli info memory | grep used_memory_human
redis-cli dbsize
نسبت keyspace_hits به keyspace_misses نشان میدهد کش چقدر مؤثر است؛ هرچه hits بیشتر باشد بهتر است.
برای دیدن دستورات زنده:
redis-cli monitor
دستورات پرکاربرد
redis-cli FLUSHALL # پاک کردن کل کش
redis-cli KEYS "*" # لیست کلیدها (در سرور شلوغ استفاده نکنید)
redis-cli GET mykey # خواندن مقدار
redis-cli TTL mykey # زمان باقیمانده کلید
نکات امنیتی مهم
- هرگز Redis را روی
0.0.0.0بدون رمز و فایروال باز نگذارید. - پورت ۶۳۷۹ نباید در فایروال باز باشد:
ufw statusرا بررسی کنید. - اگر برنامه روی سرور دیگری است، بهجای باز کردن پورت، از تونل SSH یا شبکه خصوصی استفاده کنید.
چقدر رم لازم است؟
برای یک سایت وردپرسی متوسط، ۱۲۸ تا ۲۵۶ مگابایت کافی است. Redis فقط از رمی که واقعاً نیاز دارد استفاده میکند و با maxmemory از بلعیدن کل رم جلوگیری میشود. اگر سرور شما ۱ گیگابایت رم دارد، ۱۲۸ مگابایت را شروع مناسبی در نظر بگیرید.
جمعبندی
Redis یکی از کمهزینهترین راهها برای افزایش سرعت سایت است؛ نصب آن چند دقیقه طول میکشد و نتیجه معمولاً فوری و محسوس است. فقط حتماً آن را روی لوکالهاست محدود و رمزگذاری کنید. برای سایر روشهای بهینهسازی، مقاله افزایش سرعت سرور مجازی را بخوانید.
اگر هنوز سرور ندارید، میتوانید از صفحه پلنهای سرور مجازی ایران یک سرور با تحویل آنی تهیه کنید؛ سرور بلافاصله پس از پرداخت و در کمتر از یک دقیقه تحویل داده میشود.
سرور مجازی ایران با تحویل آنی میخواهید؟
تحویل خودکار در کمتر از یک دقیقه، دیتاسنتر داخل ایران، دسترسی کامل root و پشتیبانی 24 ساعته.
مشاهده پلنها و قیمتها