
آموزش نصب Redis در لینوکس، ویندوز و Docker؛ راهنمای کامل نصب و تنظیم Redis
اگر برای اجرای وردپرس، Laravel، Python، Node.js، PHP یا یک اپلیکیشن اختصاصی به Cache سریع و یک دیتاستور In-Memory نیاز دارید، احتمالاً نام Redis را دیدهاید.
Redis یکی از ابزارهای رایج برای Cache، Session، Queue، Rate Limiting و پردازش دادههای سریع است. اما نصب آن روی همه سیستمعاملها یکسان نیست؛ مخصوصاً وقتی پای سرورهای Ubuntu، Debian، AlmaLinux، Rocky Linux، RHEL، Docker یا Windows Server وسط باشد.
در این آموزش، نصب Redis را از صفر انجام میدهیم و بعد از نصب، سرویس، اتصال، پورت، احراز هویت، Persistence، فایروال و تست عملکرد را نیز بررسی میکنیم.
نکته: دستورات این مقاله برای محیطهای آزمایشی و سرورهای واقعی تفکیک شدهاند. Redis را بدون احراز هویت و محدودسازی شبکه روی اینترنت عمومی قرار ندهید.
Redis چیست و چه کاربردی دارد؟
Redis یک دیتاستور In-Memory است که دادهها را عمدتاً در حافظه نگهداری میکند و از ساختارهای داده مختلفی مانند String، List، Set، Sorted Set و Hash پشتیبانی میکند.
مهمترین کاربردهای Redis عبارتاند از:
- ⚡ Cache
- 🔐 ذخیره Session
- 📬 Queue
- 🚦 Rate Limiting
- 📊 شمارش و آمار لحظهای
- 🔄 Pub/Sub
- 🗃️ ذخیره موقت داده
- 🚀 کاهش فشار روی MySQL و PostgreSQL
- 🤖 استفاده در برخی معماریهای AI و Automation
به همین دلیل Redis را میتوان در بسیاری از سرورهای وب و اپلیکیشن مشاهده کرد.
قبل از نصب Redis چه چیزهایی لازم داریم؟
برای نصب Redis روی یک سرور لینوکسی معمولاً به موارد زیر نیاز دارید:
- دسترسی SSH یا Console
- دسترسی
rootیا کاربری دارایsudo - سیستمعامل پشتیبانیشده
- دسترسی به Repository یا اینترنت برای دریافت بستهها
- حداقل منابع سختافزاری متناسب با حجم داده
اگر Redis برای یک سایت یا اپلیکیشن کوچک استفاده میشود، منابع زیادی لازم نیست. اما برای Cache یا دیتاستورهای بزرگ باید مصرف RAM را دقیقاً محاسبه کنید.
Redis به RAM وابستگی جدی دارد. بنابراین قبل از انتخاب سرور، حجم داده، تعداد Keyها، TTL و سیاست Eviction را در نظر بگیرید.

آموزش نصب Redis روی Ubuntu
Ubuntu یکی از رایجترین سیستمعاملها برای اجرای Redis روی VPS است.
این روش برای محیطهایی که میخواهید Redis را از Repository خود Ubuntu نصب کنید، سادهترین گزینه است.
مرحله اول: بهروزرسانی Repository
ابتدا وارد سرور شوید:
ssh root@SERVER-IPسپس:
sudo apt updateمرحله دوم: نصب Redis
sudo apt install redis-server -yبرای بررسی نسخه:
redis-server --versionو:
redis-cli --versionفعال کردن Redis در Ubuntu
بعد از نصب، وضعیت سرویس را بررسی کنید:
sudo systemctl status redis-serverاگر سرویس فعال نیست:
sudo systemctl start redis-serverبرای فعال شدن Redis هنگام Boot:
sudo systemctl enable redis-serverیا میتوانید یکجا انجام دهید:
sudo systemctl enable --now redis-serverتست Redis در Ubuntu
سادهترین تست:
redis-cli pingاگر همهچیز درست باشد، باید ببینید:
PONGبرای ورود به Redis CLI:
redis-cliحالا:
127.0.0.1:6379> PING
PONGبرای خروج:
exitمایکروسافت نیز در مستندات خود برای Redis روی Ubuntu در WSL همین الگوی نصب، اجرای سرویس و تست redis-cli ping را پیشنهاد میکند. (Microsoft Learn)
نصب Redis روی Debian
در Debian نیز روش نصب از Repository بسیار ساده است.
ابتدا:
sudo apt updateسپس:
sudo apt install redis-server -yبررسی نسخه:
redis-server --versionفعال کردن سرویس:
sudo systemctl enable --now redis-serverبررسی وضعیت:
sudo systemctl status redis-serverتست:
redis-cli pingخروجی مورد انتظار:
PONGنصب Redis روی Linux Mint
از آنجا که Linux Mint مبتنی بر Ubuntu/Debian است، روش معمول نصب به شکل زیر است:
sudo apt update
sudo apt install redis-server -yسپس:
sudo systemctl enable --now redis-serverو تست:
redis-cli pingنصب Redis روی AlmaLinux
اگر سرور شما AlmaLinux است، روش نصب با Ubuntu متفاوت است.
ابتدا سیستم را بهروز کنید:
sudo dnf update -yسپس بررسی کنید چه بستهای از Redis در Repository سیستم در دسترس است:
sudo dnf search redisاگر بسته Redis در Repository فعال موجود بود:
sudo dnf install redis -yبعد:
sudo systemctl enable --now redisو وضعیت را بررسی کنید:
sudo systemctl status redisتست:
redis-cli pingباید:
PONGدریافت کنید.
نکته مهم: نسخه Redis موجود در Repository توزیع ممکن است با جدیدترین نسخه upstream یکسان نباشد. اگر به نسخه مشخصی از Redis نیاز دارید، قبل از نصب نسخه موجود در Repository را بررسی کنید.
نصب Redis روی Rocky Linux
در Rocky Linux نیز مانند AlmaLinux از dnf استفاده میشود.
sudo dnf update -yسپس:
sudo dnf search redisدر صورت موجود بودن بسته:
sudo dnf install redis -yفعالسازی:
sudo systemctl enable --now redisبررسی:
sudo systemctl status redisتست:
redis-cli pingنصب Redis روی RHEL
در RHEL بهتر است ابتدا Repositoryهای فعال سیستم را بررسی کنید:
sudo subscription-manager repos --list-enabledسپس جستوجوی بسته:
sudo dnf search redisدر صورت در دسترس بودن بسته Redis:
sudo dnf install redis -yسپس:
sudo systemctl enable --now redisو:
redis-cli pingنصب Redis روی Fedora
در Fedora:
sudo dnf update -yسپس:
sudo dnf install redis -yفعال کردن:
sudo systemctl enable --now redisبررسی:
sudo systemctl status redisو در نهایت:
redis-cli pingنصب Redis روی CentOS
برای CentOS باید بین نسخههای قدیمی و نسخههای جدید تفاوت قائل شوید.
در CentOSهای قدیمی، Repositoryها و نسخههای قابل نصب Redis ممکن است بسیار قدیمی باشند و برای پروژه جدید انتخاب مناسبی نباشند.
ابتدا:
yum search redisیا:
dnf search redisاگر بسته موجود بود:
sudo dnf install redis -yیا در سیستمهای قدیمی:
sudo yum install redis -yسپس:
sudo systemctl enable --now redisاگر سرور شما هنوز CentOS ۷ است، بهتر است قبل از نصب نرمافزارهای جدید، وضعیت پشتیبانی و امنیت خود سیستمعامل را بررسی کنید. نصب Redis جدید روی یک سیستمعامل قدیمی لزوماً به معنی داشتن یک زیرساخت بهروز و امن نیست.
نصب Redis روی Arch Linux
در Arch Linux:
sudo pacman -Syuسپس:
sudo pacman -S redisفعال کردن سرویس:
sudo systemctl enable --now redisبررسی:
sudo systemctl status redisتست:
redis-cli pingنصب Redis روی macOS
اگر از macOS برای محیط Development استفاده میکنید، Homebrew یکی از روشهای رایج نصب است.
ابتدا:
brew updateسپس:
brew install redisبرای اجرای Redis:
brew services start redisتست:
redis-cli pingخروجی:
PONGبرای توقف سرویس:
brew services stop redisنصب Redis روی Windows
اینجا یک نکته مهم وجود دارد.
Redis Server اصلی سالهاست تمرکز اصلی خود را روی محیطهای Unix-like گذاشته و نصب مستقیم Redis روی Windows مثل Ubuntu یک مسیر استاندارد و ساده ندارد.
برای Windows چند گزینه دارید:
- WSL
- Docker
- راهکارهای سازگار با Windows مانند Memurai
برای محیط Development، استفاده از WSL2 معمولاً گزینه بسیار تمیزتری است.
مایکروسافت نصب Redis در WSL را مستقیماً با apt install redis-server مستند کرده است. (Microsoft Learn)
نصب Redis در Windows با WSL2
اگر Windows ۱۰ یا Windows ۱۱ دارید، ابتدا PowerShell را با Administrator اجرا کنید.
در نسخههای پشتیبانیشده Windows میتوانید از:
wsl --installاستفاده کنید.
پس از Restart، Ubuntu را راهاندازی کنید.
مایکروسافت اعلام کرده است که wsl --install در Windows ۱۰ نسخه ۲۰۰۴ و Build ۱۹۰۴۱ به بالا و Windows ۱۱ قابل استفاده است. (Microsoft Learn)
حالا داخل Ubuntu:
sudo apt updateسپس:
sudo apt install redis-server -yاجرای Redis:
sudo service redis-server startو تست:
redis-cli pingخروجی:
PONGنصب Redis روی Windows Server
در Windows Server نیز میتوان از WSL استفاده کرد.
Windows Server ۲۰۲۲ و ۲۰۲۵ امکان نصب WSL با:
wsl.exe --installرا دارند. WSL در Windows Server ۲۰۱۹ و نسخههای بعدی نیز قابل استفاده است، هرچند روش نصب در نسخههای قدیمیتر متفاوت است. (Microsoft Learn)
بعد از راهاندازی Ubuntu داخل WSL، نصب Redis همانند Ubuntu انجام میشود:
sudo apt update
sudo apt install redis-server -y
sudo service redis-server startنصب Redis با Docker
اگر Docker روی سرور نصب است، اجرای Redis بسیار ساده میشود.
برای دریافت Image:
docker pull redisاجرای Container:
docker run -d \
--name redis \
-p 6379:6379 \
redisبررسی:
docker psو تست:
docker exec -it redis redis-cli pingخروجی:
PONGاما یک نکته مهم
دستور بالا برای آزمایش مناسب است، اما برای Production بهتر است Redis را با تنظیمات Persistence، Authentication، Network Isolation و Volume مناسب اجرا کنید.
اجرای Redis در Docker با Volume
اگر میخواهید دادهها بعد از حذف Container باقی بمانند:
docker volume create redis-dataسپس:
docker run -d \
--name redis \
-p 6379:6379 \
-v redis-data:/data \
redis \
redis-server --appendonly yesحالا اطلاعات Redis در Volume ذخیره میشود.
بررسی:
docker exec -it redis redis-cli pingنصب Redis با Docker Compose
برای پروژههایی که Redis بخشی از یک Stack بزرگتر است، Docker Compose انتخاب مرتبتری است.
فایل:
docker-compose.ymlمثلاً:
services:
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
volumes:
- redis-data:/data
command: redis-server --appendonly yes
volumes:
redis-data:سپس:
docker compose up -dبررسی:
docker compose psتست:
docker exec -it redis redis-cli pingRedis روی Kubernetes
اگر Redis را در Kubernetes اجرا میکنید، بهتر است موضوع را از نصب یک Redis ساده جدا کنید.
برای Production باید مواردی مانند:
- Persistence
- StatefulSet
- Storage
- Secret
- Service
- NetworkPolicy
- Backup
- High Availability
- Monitoring
را در نظر بگیرید.
برای محیطهای Kubernetes، استفاده از Helm یا Operator نیز میتواند مدیریت Redis را سادهتر کند. برای نمونه، Redis Enterprise Operator یک Helm Chart رسمی دارد. (helm.redis.io)
نصب Redis از Source Code
گاهی Repository سیستمعامل نسخه موردنیاز شما را ندارد.
در این شرایط میتوان Redis را از Source Code ساخت.
ابتدا ابزارهای Build را نصب کنید.
در Ubuntu:
sudo apt update
sudo apt install -y build-essential pkg-configسپس Source Code نسخه موردنظر را از منبع رسمی Redis دریافت کنید.
Redis فایلهای Release رسمی خود را در download.redis.io منتشر میکند و در حال حاضر شاخههای متعددی از Redis در آرشیو رسمی قابل مشاهده هستند. (Redis Download)
پس از دریافت Source:
tar -xzf redis-VERSION.tar.gz
cd redis-VERSIONسپس:
makeتست:
make testو در صورت موفقیت:
sudo make installبرای Production بهتر است قبل از استفاده از Source Build، روش مدیریت سرویس، مسیر Configuration، User اختصاصی Redis و سیاست Update را مشخص کنید.
فایل تنظیمات Redis کجاست؟
محل فایل Configuration به روش نصب و توزیع سیستمعامل بستگی دارد.
در بسیاری از نصبهای Linux میتوانید مسیرهای احتمالی را با:
systemctl cat redis-serverیا:
systemctl cat redisبررسی کنید.
همچنین:
ps aux | grep redisمیتواند نشان دهد Redis با چه پارامترهایی اجرا شده است.
پورت پیشفرض Redis چیست؟
پورت استاندارد Redis:
6379است.
برای بررسی Listening Port:
ss -lntp | grep 6379یا:
sudo ss -lntp | grep redisاگر خروجی شبیه این باشد:
127.0.0.1:6379یعنی Redis روی Loopback در دسترس است.
این حالت برای بسیاری از Web Serverهایی که Redis و Application روی یک ماشین هستند، مناسبتر و امنتر است.
چرا نباید Redis را مستقیماً روی اینترنت باز کنیم؟
یکی از اشتباهات خطرناک این است که در Configuration بنویسیم:
bind 0.0.0.0و سپس پورت 6379 را در Firewall باز کنیم.
اگر Redis بدون احراز هویت و محدودیت شبکه روی اینترنت قرار بگیرد، هر کسی میتواند تلاش کند به آن متصل شود.
Redis را تا حد امکان فقط روی شبکه داخلی یا localhost قرار دهید.
برای مشاهده Listening:
ss -lntp | grep 6379اگر Application و Redis روی یک VPS هستند، معمولاً نیازی نیست پورت ۶۳۷۹ از اینترنت قابل دسترسی باشد.
تنظیم Authentication برای Redis
در نسخههای مختلف Redis، روش احراز هویت میتواند بر اساس Configuration و ACL متفاوت باشد.
در محیطهای جدید، ACL روش قدرتمندتری برای تعریف User و Permission است.
برای مشاهده ACL:
redis-cli ACL LISTبرای محیط Production، بهجای اتکا به یک رمز عبور مشترک، بهتر است Userها و Permissionهای مشخص ایجاد کنید.
تنظیم Redis برای دسترسی از سرور دیگر
فرض کنید دو سرور دارید:
Web Server
10.0.0.10
Redis Server
10.0.0.20در این حالت Redis باید روی IP مناسب شبکه داخلی Listen کند.
مثلاً در Configuration:
bind 127.0.0.1 10.0.0.20اما این IP را باید مطابق شبکه واقعی خودتان تنظیم کنید.
سپس Firewall را طوری تنظیم کنید که فقط Web Server بتواند به پورت ۶۳۷۹ دسترسی داشته باشد.
مثلاً:
Web Server → Redis:6379 ALLOW
Internet → Redis:6379 DENYاین مدل بسیار امنتر از باز کردن Redis برای همه اینترنت است.
بررسی اتصال Redis از یک سرور دیگر
از Web Server:
redis-cli -h 10.0.0.20 -p 6379 pingاگر Authentication فعال باشد، باید با Credential مناسب متصل شوید.
تنظیم Firewall برای Redis
اگر Redis فقط روی همان سرور استفاده میشود، معمولاً لازم نیست پورت ۶۳۷۹ را در Firewall عمومی باز کنید.
اگر Redis روی سرور جداگانه قرار دارد، فقط IPهای موردنیاز را Allow کنید.
مثلاً با UFW:
sudo ufw allow from 10.0.0.10 to any port 6379 proto tcpو سپس:
sudo ufw statusدر سیستمهای RHEL-based نیز میتوانید از firewalld استفاده کنید:
sudo firewall-cmd --list-allو در صورت نیاز Rule محدود برای شبکه داخلی ایجاد کنید.
بررسی سلامت Redis
چند دستور بسیار کاربردی:
تست اتصال
redis-cli pingمشاهده اطلاعات Redis
redis-cli INFOمشاهده Memory
redis-cli INFO memoryمشاهده Clients
redis-cli INFO clientsمشاهده تعداد Keyها
redis-cli DBSIZEمشاهده مصرف RAM در Redis
یکی از مهمترین دستورات:
redis-cli INFO memoryدر خروجی پارامترهایی مانند:
used_memory
used_memory_human
used_memory_peak
maxmemoryرا مشاهده میکنید.
این اطلاعات برای تشخیص Memory Pressure بسیار مهم هستند.
تست واقعی ذخیره و دریافت اطلاعات
برای تست:
redis-cli SET test "NegarNovin"سپس:
redis-cli GET testباید:
"NegarNovin"دریافت کنید.
برای حذف:
redis-cli DEL testRedis و Cache وردپرس
یکی از رایجترین کاربردهای Redis، Object Cache در WordPress است.
در این معماری:
Visitor
↓
WordPress
↓
Redis Cache
↓
DatabaseRedis میتواند برخی دادههای پرتکرار را در حافظه نگهداری کند و تعداد Queryهای موردنیاز برای Database را کاهش دهد.
البته Redis بهتنهایی تضمین نمیکند سایت سریع شود. عملکرد نهایی به PHP، Web Server، Database، Cache Policy، منابع سرور و معماری WordPress نیز وابسته است.
Redis در Laravel
Laravel نیز Redis را برای مواردی مانند:
- Cache
- Queue
- Session
پشتیبانی میکند.
در چنین معماریای Redis میتواند بین Application و Database قرار بگیرد.
مثلاً:
Laravel
│
├── Redis → Cache
│
├── Redis → Queue
│
└── MySQL → Persistent Dataاین جداسازی میتواند مدیریت Application را بسیار بهتر کند.
Redis در Python
در Python میتوان از Clientهای Redis استفاده کرد.
نمونه ساده:
import redis
r = redis.Redis(
host="127.0.0.1",
port=6379,
decode_responses=True
)
r.set("name", "NegarNovin")
print(r.get("name"))خروجی:
NegarNovinRedis در Node.js
در Node.js نیز Redis کاربرد گستردهای دارد.
برای مثال با یک Redis Client میتوان:
Node.js
↓
Redis
↓
Cache / Session / Queueرا پیادهسازی کرد.
نکته مهم این است که اطلاعات اتصال Redis را داخل Source Code عمومی قرار ندهید و از Environment Variables یا Secret Management استفاده کنید.
Redis Persistence چیست؟
Redis به دلیل In-Memory بودن، موضوع Persistence اهمیت خاصی دارد.
دو مفهوم مهم:
RDB
در RDB، Snapshotهایی از Dataset ایجاد میشود.
مزیت آن حجم مناسب و Recovery نسبتاً ساده است.
AOF
در AOF، عملیات Write در فایل ثبت میشوند.
این روش میتواند برای سناریوهایی که نیاز به Durability بیشتری دارند مناسب باشد، البته هزینه I/O و حجم فایل نیز باید در نظر گرفته شود.
Redis مستندات و فایلهای رسمی مربوط به نسخههای مختلف خود را در مخزن انتشار رسمی ارائه میکند. (Redis Download)
آیا Redis باید Backup شود؟
اگر Redis فقط Cache قابل بازسازی باشد، ممکن است Backup آن اولویت بالایی نداشته باشد.
اما اگر Redis شامل اطلاعاتی باشد که از دست رفتن آنها برای Application مشکل ایجاد میکند، باید Persistence و Backup را جدی بگیرید.
مثلاً:
| نوع استفاده | اهمیت Backup |
|---|---|
| Cache ساده | پایین |
| Session | متوسط |
| Queue | وابسته به معماری |
| داده اصلی Application | بالا |
| اطلاعات حیاتی | بسیار بالا |
خطاهای رایج هنگام نصب Redis
خطای Connection refused
مثلاً:
Could not connect to Redis at 127.0.0.1:6379
Connection refusedابتدا:
sudo systemctl status redis-serverیا:
sudo systemctl status redisسپس:
ss -lntp | grep 6379اگر Redis اجرا نیست:
sudo systemctl start redis-serverخطای redis-cli: command not found
یعنی Client نصب نشده یا در PATH نیست.
در Ubuntu:
sudo apt install redis-tools -yسپس:
redis-cli pingاگر Redis بعد از Reboot اجرا نشد
وضعیت:
systemctl is-enabled redis-serverیا:
systemctl is-enabled redisاگر Disabled باشد:
sudo systemctl enable redis-serverسپس:
sudo systemctl start redis-serverبررسی Logهای Redis
برای سیستمهای systemd:
journalctl -u redis-serverیا:
journalctl -u redisبرای مشاهده Logهای اخیر:
journalctl -u redis-server -n 100 --no-pagerو برای دنبال کردن Log:
journalctl -u redis-server -fاین دستورات در زمان Troubleshooting بسیار کاربردی هستند.
آیا Redis را روی VPS نصب کنیم؟
بله، VPS یکی از محیطهای رایج برای اجرای Redis است.
اگر Redis برای یک سایت یا Application استفاده میشود، میتوانید Redis و Application را روی یک VPS قرار دهید:
VPS
├── Nginx
├── PHP / Python / Node.js
├── Redis
└── Databaseبرای پروژههای بزرگتر میتوان Redis را روی سرور جداگانه قرار داد:
Web Server
│
├──── Redis Server
│
└──── Database Serverمزیت معماری دوم، جداسازی منابع و امکان Scale کردن مستقل سرویسهاست.
چه مقدار RAM برای Redis نیاز داریم؟
عدد ثابتی وجود ندارد.
حجم RAM موردنیاز به موارد زیر وابسته است:
- تعداد Keyها
- حجم Valueها
- ساختار داده
- تعداد Clientها
- تعداد درخواستها
- Replication
- Persistence
- Fragmentation
- سیاست Eviction
برای یک Cache کوچک، چند صد مگابایت ممکن است کافی باشد.
اما Datasetهای بزرگ Redis میتوانند دهها یا صدها گیگابایت RAM نیاز داشته باشند.
بنابراین RAM سرور را بر اساس Dataset واقعی انتخاب کنید، نه صرفاً تعداد هسته CPU.
چکلیست نهایی نصب Redis
قبل از اینکه نصب را تمامشده بدانید، این موارد را بررسی کنید:
- Redis نصب شده
-
redis-server --versionجواب میدهد - سرویس Running است
- سرویس بعد از Reboot اجرا میشود
-
redis-cli pingمقدارPONGمیدهد - پورت ۶۳۷۹ بررسی شده
- Redis به اینترنت عمومی باز نیست
- Authentication/ACL تنظیم شده
- Firewall تنظیم شده
- RAM کافی است
- Persistence بر اساس نیاز تنظیم شده
- Backup در صورت نیاز فعال است
- Logها بررسی شدهاند
- Application به Redis متصل میشود
جمعبندی آموزش نصب Redis
نصب Redis روی اکثر Linux Serverها بسیار ساده است، اما نصب موفق با راهاندازی امن و اصولی یکی نیست.
روی Ubuntu و Debian معمولاً میتوانید از apt استفاده کنید و در خانواده RHEL مانند AlmaLinux، Rocky Linux، Fedora و RHEL معمولاً dnf مسیر اصلی مدیریت بسته است. در Windows نیز WSL2 یا Docker گزینههای مناسبی برای محیط Development هستند. برای Containerها نیز Docker و Docker Compose مدیریت Redis را ساده میکنند.
بعد از نصب، مهمترین مرحله Configuration است. Redis را بیدلیل روی 0.0.0.0:6379 در اینترنت عمومی قرار ندهید. دسترسی شبکه، Authentication/ACL، Firewall، Persistence و Backup را بر اساس کاربرد واقعی سرویس تنظیم کنید.
اگر Redis را برای WordPress، Laravel، Python، Node.js یا یک Application اختصاصی روی VPS نصب میکنید، بهتر است منابع سرور را متناسب با حجم Cache و Dataset انتخاب کنید.
