نحوه نصب، پیکربندی و ایمن سازی Redis در اوبونتو #
Redis یک پایگاه داده درون حافظهای است که برای ذخیره موقت دادهها به عنوان حافظه پنهان (cache) برای کاهش بار سرور و بهبود عملکرد برنامه استفاده میشود. همچنین یک واسطه پیام (message broker) است که جریان دادهها را بین سرویسها تسهیل میکند.
راهاندازی Redis میتواند دشوار باشد زیرا دستورات و پارامترهای پیکربندی مختلفی دارد. علاوه بر این، این نرمافزار چندین ابزار کاربردی ارائه میدهد که اگر مراقب نباشید، میتوانند خطرناک باشند.
برای کمک به شما در عبور ایمن از این فرآیند، این مقاله نحوه نصب Redis در اوبونتو را توضیح میدهد. همچنین نحوه ایمنسازی و نگهداری صحیح این نرمافزار را توضیح خواهیم داد تا بتوانید با خیال راحت از آن در سرور مجازی خصوصی (VPS) خود استفاده کنید.
پیش نیازهای نصب Redis #
قبل از نصب Redis، مطمئن شوید که یک VPS با سیستم عامل اوبونتو دارید زیرا مراحل برای سایر سیستم عاملهای لینوکس متفاوت است. همچنین، توصیه میکنیم از اوبونتو ۲۲.۰۴ یا بالاتر استفاده کنید زیرا نسخههای قدیمیتر ممکن است از دستورات متفاوتی استفاده کنند.
برای اطمینان از عملکرد بهینه، VPS شما باید الزامات سیستم Redis را برآورده کند. علاوه بر این، کامپیوتر محلی شما باید کلاینت PuTTY secure shell (SSH) را نصب کرده باشد زیرا ما از آن برای اتصال به سرور استفاده خواهیم کرد. به عنوان یک جایگزین، کاربران لینوکس و MacOS میتوانند از ترمینال استفاده کنند.
اگر هنوز پلنی خریداری نکردهاید، توصیه میکنیم پلن های سرور مجازی نوین هاست را بررسی کنید. کاربران میتوانند از طریق SSH یا از طریق ترمینال مرورگر داخلی به سرورهای ما متصل شوند تا فرآیند نصب سادهتر شود.
علاوه بر این، پلنهای ما دارای تخصیص منابع سختافزاری متفاوتی برای تأمین نیازهای مختلف هستند. شما میتوانید به راحتی در هر زمان تا KVM 8 ارتقا دهید که ۸ هسته vCPU قدرتمند و ۳۲ گیگابایت رم را ارائه میدهد.
نحوه نصب Redis روی سرور مجازی اوبونتو #
پس از بررسی پیشنیازها، بیایید به مراحل نصب Redis روی Ubuntu VPS بپردازیم. قبل از ادامه، با استفاده از یک کلاینت SSH مانند PuTTY یا ترمینال مرورگر نوین هاست به سرور خود متصل شوید .
مهم! قبل از اقدام به سادهسازی بازیابی فایلها در صورت بروز خطا یا پیکربندی اشتباه، از دادههای VPS خود نسخه پشتیبان تهیه کنید .
۱. نصب سرور ردیس #
از آنجایی که اتصال SSH به طور پیشفرض از root استفاده میکند ، قبل از نصب Redis یک superuser جدید ایجاد کرده و به آن سوئیچ کنید. از آنجایی که این حساب کاربری قبل از اجرای ابزارها درخواست تأیید میکند، انجام این کار به کاهش خطر اجرای تصادفی دستورات که ممکن است باعث ایجاد مشکل شوند، کمک میکند.
برای ایجاد یک کاربر جدید در سیستم اوبونتو، دستور زیر را اجرا کنید. به جای your-username ، نام حساب کاربری مورد نظر خود را وارد کنید:
adduser your-username
رمز عبور کاربر و سایر جزئیات را وارد کنید. اکنون، به حساب کاربری sudo امتیازات لازم برای اجرای دستورات مدیریتی را اعطا کنید:
usermod -a -G sudo your-username
سپس با وارد کردن موارد زیر به کاربر جدید بروید:
su your-username
برای بازگشت به دایرکتوری خانگی، cd را وارد کنید . اکنون، نصب Redis را با بهروزرسانی مخزن سیستم خود آغاز میکنیم تا مطمئن شویم که آخرین نسخه نرمافزار را دریافت میکنید:
sudo apt update
پس از اتمام بهروزرسانی، دستور زیر را برای نصب Redis اجرا کنید. در صورت درخواست تأیید از رابط خط فرمان (CLI) ، Y و Enter را فشار دهید:
sudo apt install redis
توجه داشته باشید که بستههای redis-server و redis در مخزن اوبونتو وجود دارند . هر دو نرمافزار یکسانی را نصب میکنند، بنابراین میتوانید از هر کدام استفاده کنید و نتیجه یکسانی داشته باشید.
با وارد کردن دستور زیر، نسخه کلاینت خط فرمان Redis را بررسی کنید تا مطمئن شوید که به درستی پیکربندی شده است:
redis-cli --version

اگر ترمینال شماره نسخه را برگرداند، پایگاه داده ذخیرهسازی به درستی نصب شده است. اکنون، وضعیت سرویس Redis را بررسی کنید تا مطمئن شوید که در حال اجرا و فعال است:
sudo systemctl status redis

از طرف دیگر، کاربران VPS نوین هاست میتوانند از کدی بخواهند که وضعیت Redis را پس از نصب تأیید کند. از طریق نوار کناری سمت چپ داشبورد خود به این ویژگی دسترسی پیدا کنید و سپس مانند مثال زیر، دستور خود را تایپ کنید:

اگر وضعیت Redis را غیرفعال یا متوقف شده میبینید ، دستور زیر را برای شروع دستی آن اجرا کنید:
sudo systemctl start redis
اکنون، با استفاده از این دستور، سرویس Redis را طوری فعال کنید که پس از راهاندازی مجدد سیستم، بهطور خودکار شروع به کار کند:
sudo systemctl enable redis
۲. پیکربندی ردیس #
Redis به طور پیشفرض به تمام اتصالات گوش میدهد، که میتواند خطرات امنیتی شبکه را ایجاد کند. برای اطمینان از عملکرد صحیح و ایمن آن، باید فقط آدرسهای IP لازم را متصل کنید.
اگر برنامه وب شما و Redis در یک سرور هستند، آدرس localhost یعنی ۱۲۷.۰.۰.۱ را bind کنید . اگر از سیستم دیگری برای میزبانی برنامه استفاده میکنید، IP آن را مشخص کنید.
برای تغییر پیکربندی پیشفرض، فایل redis.conf را با استفاده از یک ویرایشگر متن مانند nano باز کنید . دستور زیر را اجرا کنید:
sudo nano /etc/redis/redis.conf
خطی که شامل bind 127.0.0.1 ::1 است را پیدا کنید . میتوانید با فشار دادن Ctrl + W و وارد کردن عبارت مورد نظر، به سرعت محتوای فایل را جستجو کنید.

پیکربندی شبکه را بر اساس نیازهای خود تغییر دهید. اگر نیاز دارید که Redis به چندین رابط متصل شود، آدرسهای IP آنها را با فاصله از هم جدا کنید، مانند زیر:
bind 127.0.0.1 185.185.185.185 185.185.185.186
مطمئن شوید که علامت هشتگ ( # ) را از ابتدای خط حذف کردهاید. در غیر این صورت، پیکربندی اعمال نخواهد شد و Redis به دریافت تمام IPها ادامه خواهد داد.
مهم! آدرس localhost را در تنظیمات bind حذف نکنید زیرا برای آزمایش ضروری است.
علاوه بر بهینهسازی امنیت شبکه، با تنظیم احراز هویت با رمز عبور، از کلاینت Redis محافظت کنید. برای انجام این کار، در بخش SECURITY فایل redis.conf ، به دنبال عبارت requirepass بگردید .
برای فعال کردن این دستورالعمل، نماد هشتگ را حذف کنید و مقدار پیشفرض را با یک عبارت عبور قوی مانند زیر جایگزین کنید:
requirepass your-password
پس از اتمام، کلیدهای Ctrl + X ، Y و Enter را فشار دهید تا تنظیمات ذخیره شوند. سپس، سرویس Redis را با استفاده از این دستور مجدداً راهاندازی کنید تا تغییرات جدید اعمال شوند:
sudo systemctl restart redis
۳. بررسی عملکرد Redis #
پس از پیکربندی Redis، اتصال به پایگاه داده را بررسی کنید تا مطمئن شوید که بر اساس تنظیمات شما به درستی کار میکند. برای انجام این کار، Redis CLl را با استفاده از دستور زیر وارد کنید:
redis-cli
حالا، بیایید بررسی کنیم که آیا احراز هویت با رمز عبور با استفاده از دستور auth کار میکند یا خیر . your-secure-password را با مقدار واقعی مشخص شده در فایل پیکربندی Redis جایگزین کنید:
auth your-secure-password
رابط خط فرمان Redis باید یک پیام تأیید برگرداند ، به این معنی که اکنون میتوانید دستورات را در پایگاه داده اجرا کنید. برای شروع، اتصال را با ارسال داده با استفاده از دستور ping آزمایش کنید :
ping
باید پیام PONG را برگرداند . در غیر این صورت، فایل پیکربندی Redis را باز کنید و مطمئن شوید که آدرس localhost یعنی ۱۲۷.۰.۰.۱ را bind کردهاید .

در مرحله بعد، با ارسال یک پیام آزمایشی و بازیابی آن، بررسی کنید که آیا ذخیرهسازی Redis به درستی کار میکند یا خیر. برای انجام این کار، دستورات زیر را متعاقباً وارد کنید:
set test "Redis is working"
get test
Redis باید پیامی را که در دستور اول مشخص کردهاید، یعنی «Redis is working» («ردیس در حال کار است») برگرداند.

اگرچه این تست سریع برای تأیید صحت عملکرد پایگاه داده کافی است، در صورت نیاز میتوانید دستورات دیگر Redis را نیز اجرا کنید . پس از بررسی عملکردها، با وارد کردن دستور زیر از پوسته خارج شوید:
quit
۴. تغییر نام دستورات خطرناک #
چندین دستور Redis میتوانند ورودیهای پایگاه داده شما را دستکاری یا برای همیشه پاک کنند. اگرچه ممکن است برای کارهای خاص به آنها نیاز داشته باشید، اما اگر کاربران غیرمجاز به سرور شما دسترسی پیدا کنند، میتوانند خطرناک باشند.
از آنجایی که دستورات مخرب زیادی وجود دارد، برای کسب اطلاعات بیشتر در مورد آنها ، مستندات لیست کنترل دسترسی Redis را بررسی کنید . در اینجا برخی از موارد رایج و عملکردهای آنها آورده شده است:
- FLUSHALL – تمام کلیدها و دادهها را در کل نمونه Redis شما حذف میکند.
- FLUSHDB – دادهها را در پایگاه داده فعلی پاک میکند.
- SHUTDOWN – سرور Redis را بدون ذخیره دادهها خاموش میکند.
- DEL – یک یا چند کلید را از پایگاه داده فعلی شما حذف میکند.
- RENAME – تغییر نام یک کلید در پایگاه داده انتخاب شده فعلی.
- SAVE – یک مجموعه داده را در حافظه سرور ذخیره میکند و در عین حال سایر فرآیندهای در حال اجرا را مسدود میکند.
برای بهبود امنیت Redis، میتوانید بسته به نیاز خود، چنین دستوراتی را تغییر نام دهید یا غیرفعال کنید. با باز کردن فایل redis.conf با استفاده از nano شروع کنید:
sudo nano /etc/redis/redis.conf
به بخش SECURITY بروید و تنظیمات مربوط به تغییر نام دستورات را اضافه کنید. میتوانید از هر نامی استفاده کنید، اما ما عبارات منحصر به فرد، به یاد ماندنی و دشوار برای حدس زدن را توصیه میکنیم.
برای مثال، ما دستور FLUSHALL را به IWANTTO_FLUSHALL تغییر نام میدهیم و با وارد کردن خطوط زیر، SHUTDOWN را به SHUTDOWN_MYDB تغییر میدهیم:
rename-command FLUSHALL IWANTTO_FLUSHALL rename-command SHUTDOWN SHUTDOWN_MYDB
برای تغییر سایر دستورات، خطوط بیشتری با همین سینتکس اضافه کنید. برای غیرفعال کردن آنها، کافیست از علامت نقل قول خالی به عنوان نام جدید استفاده کنید. برای مثال، این تنظیم FLUSHALL را غیرفعال میکند :
rename-command FLUSHALL ""
فایل را ذخیره کنید و Redis را برای اعمال تغییرات مجدداً راهاندازی کنید. حال، بیایید بررسی کنیم که آیا با اجرای دستورات، تغییر نام یا غیرفعال کردن آنها با موفقیت انجام شده است یا خیر.
هشدار! برای نصب جدید Redis، بررسی مستقیم دستورات خطرناک اشکالی ندارد زیرا هیچ دادهای اضافه نکردهاید. با این حال، برای آزمایشهای بعدی از یک محیط توسعه محلی استفاده کنید زیرا ممکن است باعث از دست رفتن دادهها شوند.
برای شروع، redis-cli را اجرا کنید تا به پوسته پایگاه داده دسترسی پیدا کنید. سپس، دستورات تغییر نام داده شده را با استفاده از نام اصلی آنها وارد کنید. به عنوان مثال، ما FLUSHALL را بررسی خواهیم کرد :
FLUSHALL
اگر تغییر نام موفقیتآمیز باشد، Redis یک پیام خطا مبنی بر ناشناخته بودن دستور مانند زیر برمیگرداند:

حالا دستور را با نام جدیدش اجرا کنید. Redis باید بسته به دستوری که آزمایش کردهاید، یک خروجی یا رشته خالی برگرداند. برای مثال، FLUSHALL پس از اجرای موفقیتآمیز هیچ پیامی نمیدهد.
۵. نگهداری از Redis #
پس از نصب Redis، آن را برای اطمینان از عملکرد و امنیت بهینه، نگهداری کنید. در اینجا چندین روش برای بررسی وجود دارد:
- پشتیبانگیری منظم – قابلیت پشتیبانگیری خودکار میزبان وب خود را فعال کنید تا یک نقطه بازیابی برای دادههای Redis خود ایجاد کنید. همچنین، بهطور منظم با استفاده از دستور SAVE در Redis، یک اسنپشات از مجموعه دادههای خود ایجاد کنید .
- نظارت بر سرور – میزان استفاده از حافظه، میزان استفاده از CPU، تأخیر و سایر معیارهای عملکرد سرور Redis خود را پیگیری کنید تا از پاسخگویی آن اطمینان حاصل کنید. میتوانید از ابزارهایی مانند Prometheus یا Grafana استفاده کنید .
- بهروزرسانی دورهای – بلافاصله نسخه جدید Redis را با استفاده از دستور apt update && apt upgrade نصب کنید تا آخرین بهروزرسانیهای امنیتی و رفع اشکالات اعمال شود.
- کنترل امنیتی – فعال کردن احراز هویت با رمز عبور برای Redis CLI، اعمال گواهی لایه سوکتهای امن (SSL) و پیکربندی قوانین فایروال برای محافظت از پورت پایگاه داده.
- تجزیه و تحلیل فایلهای لاگ – لاگهای رویدادهای Redis را به صورت دورهای بررسی کنید تا به سرعت اقدامات یا تغییرات غیرمجازی را که ممکن است امنیت سرور را به خطر بیندازند، شناسایی کنید.
به دلیل اقدامات مختلف، نگهداری از Redis میتواند دشوار باشد، مخصوصاً برای مبتدیان. اگر در مدیریت سرور خود به کمک نیاز دارید، از دستیار هوش مصنوعی ما، Kodee ، برای سادهسازی کارها استفاده کنید.
شما میتوانید با استفاده از دستورات ساده، دستورات و دستورالعملهایی را برای مدیریت سرور ایجاد کنید. برای مثال، بپرسید: «یک cronjob ایجاد کنید که هر دوشنبه صبح دستور SAVE را در Redis اجرا کند تا مجموعه دادهها ذخیره شوند.»

علاوه بر این، میتوانید از Kodee بخواهید وظایف اولیه مدیریت سیستم، مانند راهاندازی مجدد VPS، تنظیم برنامه پشتیبانگیری و بررسی میزان استفاده از منابع را انجام دهد. برای مثال، به سادگی از آن بخواهید: «VPS فعلی من را راهاندازی مجدد کند» یا «معیارهای استفاده از سختافزار را در VPS فعلی من بررسی کند».
نتیجه گیری #
راهاندازی Redis روی VPS شما به کاهش بار و تأخیر کمک میکند تا عملکرد برنامه شما بهبود یابد. در این مقاله، پنج مرحله برای نصب و پیکربندی این ابزار روی سیستم اوبونتو از طریق SSH را توضیح دادهایم:
- Redis را با استفاده از مدیر بسته apt نصب کنید .
- اتصال Redis و احراز هویت با رمز عبور را پیکربندی کنید.
- وارد پوسته Redis شوید و عملکرد دستورات آن را بررسی کنید.
- دستورات خطرناک Redis را تغییر نام دهید یا غیرفعال کنید.
- با اعمال شیوههایی مانند پشتیبانگیری منظم و حسابرسی لاگ، Redis را حفظ کنید.
از آنجایی که Redis پیچیده است، توصیه میکنیم برای اطلاعات بیشتر در مورد ویژگیهای آن، مستندات آن را مطالعه کنید. در همین حال، اگر میخواهید در مورد مدیریت سرور بیشتر بدانید، سایر آموزشهای VPS ما را بررسی کنید.
نحوه نصب Redis سوالات متداول #
در این بخش، به چندین سوال در مورد نصب Redis روی سیستم اوبونتو پاسخ خواهیم داد.
ردیس برای چه مواردی استفاده میشود؟ #
Redis یک پایگاه داده کش درون حافظهای است که برای ذخیره موقت دادههای برنامه شما استفاده میشود. این پایگاه داده، فاصله بین نقاط انتهایی را کاهش میدهد تا تأخیر را کاهش دهد، بار سرور را به حداقل برساند و عملکرد را بهبود بخشد. همچنین یک واسطه پیام است که جریان دادهها را بین سرویسها بهینه میکند.
چگونه یک نسخه خاص از Redis را نصب کنم؟ #
شما میتوانید با اجرای دستور apt install redis-server= یک نسخه خاص از Redis را از مخازن رسمی اوبونتو نصب کنید . به جای عدد، مقدار واقعی را قرار دهید. همچنین میتوانید با اضافه کردن مخازن شخص ثالث یا کد منبع Redis، نسخههای دیگر را دانلود کنید.
آیا میتوانم Redis را با استفاده از یک کانتینر Docker به جای نصب مستقیم روی اوبونتو نصب کنم؟ #
بله! شما میتوانید Redis را با استفاده از یک کانتینر Docker و با دریافت ایمیج Redis از Docker Hub نصب کنید. سپس میتوانید Redis را مدیریت کنید یا با استفاده از دستور docker از خارج از کانتینر وارد shell آن شوید .
