
به اشتراک بگذارید

به اشتراک بگذارید
موارد فنی | بلاگ وبداده
Redis چیست؟ ۷ مزیت کلیدی و آموزش نصب روی ویندوز و لینوکس

# گام ۱: نصب پیشنیازها
sudo apt-get install lsb-release curl gpg
# گام ۲: افزودن کلید رسمی مخزن Redis
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
# گام ۳: افزودن مخزن رسمی Redis به APT
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
# گام ۴: بهروزرسانی فهرست بستهها و نصب Redis
sudo apt-get update
sudo apt-get install redisBash# فعالسازی اجرای خودکار Redis هنگام بوت سیستم
sudo systemctl enable redis-server
# شروع سرویس Redis
sudo systemctl start redis-server
# بررسی وضعیت سرویس (باید active (running) باشد)
sudo systemctl status redis-serverBash# تست اتصال به سرور Redis
redis-cli ping
# خروجی صحیح:
# PONG
# مشاهده نسخه نصبشده
redis-server --versionBash
# ورود به محیط خط فرمان Redis
redis-cli
# ذخیره و خواندن یک مقدار (نمونهای از کش)
127.0.0.1:6379> SET site:title "Webdade"
OK
127.0.0.1:6379> GET site:title
"Webdade"
# تعیین زمان انقضا برای داده کش (مثلاً ۶۰ ثانیه)
127.0.0.1:6379> EXPIRE site:title 60
(integer) 1Bash# ویرایش فایل پیکربندی Redis
sudo nano /etc/redis/redis.conf
# مهمترین تنظیمات امنیت و حافظه را ویرایش کنید:
# bind 127.0.0.1 ::1 # محدود کردن اتصال به شبکه محلی
# requirepass YourStrongPassword # تعیین رمز عبور برای دسترسی
# maxmemory 256mb # سقف مصرف حافظه
# maxmemory-policy allkeys-lru # سیاست حذف داده هنگام پر شدن حافظه
# اعمال تغییرات با ریاستارت سرویس
sudo systemctl restart redis-serverBash# روی ویندوز ابتدا WSL را فعال کنید (PowerShell با دسترسی Administrator)
wsl --install
# پس از نصب اوبونتو داخل WSL، همان مسیر لینوکس را اجرا کنید:
sudo apt update
sudo apt install redis-server
# اجرای سرویس و تست اتصال داخل WSL
sudo service redis-server start
redis-cli pingBash| معیار | Redis | Memcached |
|---|---|---|
| ساختار داده | رشته، لیست، set، sorted set، hash، stream | فقط کلید-مقدار ساده (رشته) |
| پایداری داده | دارد (RDB و AOF) | ندارد (داده فرّار است) |
| سیاست حذف داده | شش سیاست مختلف (از جمله LRU، TTL) | فقط LRU |
| کاربرد اصلی | کش، نشست، صف، آنالیتیکس، pub/sub | کش ساده با throughput بالا |
| پشتیبانی چندریسمانی | اجرای دستورها عمدتاً تکریسمانی | چندریسمانی |
sudo systemctl status redis-server وضعیت را ببینید و در صورت لزوم آن را start کنید.redis-cli -a YourPassword یا دستور AUTH وارد شوید.Redis یک پایگاهداده درونحافظهای (in-memory) از نوع کلید-مقدار است که در دسته دیتابیسهای NoSQL قرار میگیرد. دادهها را بهجای دیسک در حافظه رم نگه میدارد و علاوه بر دیتابیس، نقش کش و message broker را هم ایفا میکند. همین معماری دلیل سرعت بسیار بالای آن است.
بله، در صورت تنظیم درست. Redis دو روش پایداری دارد: RDB که بهصورت دورهای snapshot میگیرد و AOF که هر دستور تغییردهنده را ثبت میکند. اگر این گزینهها فعال باشند، داده روی دیسک ذخیره و پس از ریاستارت بازیابی میشود؛ اما اگر هیچکدام فعال نباشد، داده فقط در حافظه میماند و با خاموشی از بین میرود.
هر دو کش درونحافظهای هستند، اما Redis از ساختار داده متنوع (لیست، set، sorted set، hash و…) و پایداری داده پشتیبانی میکند، در حالی که Memcached فقط کلید-مقدار ساده را نگه میدارد و persistence ندارد. Memcached برای کش بسیار ساده و چندریسمانی مناسب است و Redis برای کاربردهای پیچیدهتر مثل نشست، صف و آنالیتیکس.
Redis بهصورت پیشفرض روی پورت 6379 اجرا میشود. میتوانید این پورت را در فایل پیکربندی redis.conf تغییر دهید. برای تست اینکه سرویس روی این پورت در حال اجراست، کافی است دستور redis-cli ping را بزنید؛ دریافت پاسخ PONG یعنی همهچیز درست است.
Redis نسخه بومی رسمی برای ویندوز ندارد. برای اجرای آن روی ویندوز میتوانید از WSL (زیرسیستم ویندوز برای لینوکس) استفاده کنید و همان نسخه لینوکسی را اجرا کنید، یا از ابزار Memurai که نسخهای سازگار با ویندوز است بهره ببرید. برای محیط عملیاتی، اجرای Redis روی یک سرور لینوکس توصیه میشود.
در وردپرس میتوان از Redis بهعنوان Object Cache استفاده کرد؛ یعنی نتایج پرتکرار کوئریهای دیتابیس در Redis کش میشوند تا در درخواستهای بعدی بهجای مراجعه به دیتابیس، مستقیماً از حافظه خوانده شوند. این کار بار روی دیتابیس را کم و زمان بارگذاری صفحات را بهخصوص در سایتهای پربازدید کوتاهتر میکند.
بله، Redis نرمافزاری متنباز است و نصب و استفاده از نسخه اوپنسورس آن رایگان است. از نسخه ۸ به بعد تحت لایسنس AGPLv3 عرضه میشود. البته اجرای آن به یک سرور یا سیستم با منابع کافی نیاز دارد؛ هزینه واقعی معمولاً مربوط به زیرساخت سرور است، نه خود نرمافزار.
مهمترین کارها این است که با گزینه requirepass یک رمز عبور قوی تعیین کنید، با تنظیم bind اتصال را به شبکه محلی محدود کنید، پورت Redis را روی اینترنت باز نگذارید و با فایروال دسترسی را کنترل کنید. همچنین میتوانید دستورهای خطرناک را با rename-command غیرفعال کنید تا امنیت بیشتری داشته باشید.
میزان مصرف رم به حجم دادهای که ذخیره میکنید بستگی دارد، چون همه دادهها در حافظه نگهداری میشوند. برای کنترل مصرف میتوانید با گزینه maxmemory یک سقف تعیین کنید و با maxmemory-policy مشخص کنید هنگام پر شدن حافظه کدام دادهها حذف شوند. برآورد درست رم یکی از مهمترین نکات پیش از راهاندازی است.