Redis مخفف Remote Dictionary Server است که در RAM قرار میگیرد و کار آن به طور کلی، ذخیرهسازی اطلاعات به صورت سریع و موقت است. ردیس یکی از پایگاه دادههای محبوب، منبعباز و درون حافظه است. Redis یک فروشگاه Key-Value در حافظه میباشد که به دلیل انعطافپذیری، عملکرد و پشتیبانی گسترده از زبانها شناخته میشود.
در Redis، "Key-Value Store" به معنای نگهداری دادهها به صورت جفتهای کلید و مقدار است. هر مقدار داده در Redis با یک کلید یکتا مرتبط است که برای بازیابی سریع و کار با دادهها استفاده میشود. به این صورت، شما میتوانید با استفاده از یک کلید مقدار مرتبط با آن را به سرعت واکشی یا تغییر دهید. این آموزش نحوه نصب، پیکربندی و ایمنسازی Redis را بر روی یک سرور Ubuntu 22.04 نشان میدهد.
پیشنیازها
برای تکمیل این آموزش، شما به دسترسی، یک سرور Ubuntu 22.04 که دارای یک کاربر غیر-root با امتیاز sudo و یک فایروال تنظیمشده با ufw است، نیاز دارید. شما میتوانید این کار را با دنبال کردن راهنمای تنظیم اولیه سرور ما برای Ubuntu 22.04 انجام دهید.
مرحله ۱ — نصب و پیکربندی Redis
ما از مدیر بسته APT برای نصب Redis از مخازن رسمی Ubuntu استفاده خواهیم کرد. در حال حاضر، نسخهای که در مخازن پیشفرض موجود است نسخه ۶.۰.۱۶ است.
ابتدا با بهروزرسانی کردن حافظه نهان بستههای APT محلیتان شروع کنید:
sudo apt update
سپس Redis را با دستور زیر نصب کنید:
sudo apt install redis-server
این کار Redis و وابستگیهای آن را دانلود و نصب خواهد کرد. پس از این، یک تغییر کانفیگ مهم در فایل کانفیگ Redis که به صورت خودکار در طول نصب تولید شده است، باید انجام شود.
این فایل را با ویرایشگر متنی دلخواهتان باز کنید:
sudo nano /etc/redis/redis.conf
در داخل فایل، دستور مشاهده شده را پیدا کنید. این دستور به شما امکان میدهد یک init systemd را برای مدیریت Redis به عنوان یک سرویس اعلام کنید که به شما کنترل بیشتری روی عملکرد آن میدهد. این دستور به طور پیشفرض به no تنظیم شده است. از آنجایی که شما Ubuntu را اجرا میکنید که از سیستم init systemd استفاده میکند، این را به systemd تغییر دهید:
. . .
If you run Redis from upstart or systemd, Redis can interact with your #
: supervision tree. Options #
supervised no - no supervision interaction #
supervised upstart - signal upstart by putting Redis into SIGSTOP mode #
supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET #
supervised auto - detect upstart or systemd method based on #
UPSTART_JOB or NOTIFY_SOCKET environment variables #
."Note: these supervision methods only signal "process is ready #
.They do not enable continuous liveness pings back to your supervisor #
supervised systemd
. . .
این تنها تغییری است که شما در این مرحله باید در فایل پیکربندی Redis اعمال کنید، پس آن فایل را ذخیره و ببندید. اگر از nano برای ویرایش فایل استفاده کردهاید، این کار را با فشار دادن CTRL + X، Y، سپس ENTER انجام دهید.
سپس، سرویس Redis را دوباره راهاندازی کنید تا تغییراتی که در فایل پیکربندی اعمال کردهاید را اعمال کند:
sudo systemctl restart redis.service
با این کار، شما Redis را نصب و پیکربندی کردهاید و آن در دستگاه شما اجرا میشود. اما قبل از شروع به استفاده از آن، بهتر است که ابتدا بررسی کنید که آیا Redis به درستی کار میکند یا خیر.
مرحله ۲ — آزمایش Redis
همانطور که هر نرمافزاری که به تازگی نصب میکنیم بهتر است از درست اجرا شدن آن اطمینان حاصل کنیم برای Redis نیز به همین شکل است. ما در این مرحله به چند روش برای بررسی اینکه Redis به درستی کار میکند، میپردازیم.
ابتدا بررسی کنید که سرویس Redis در حال اجرا است:
sudo systemctl status redis
اگر بدون هیچ خطایی در حال اجرا باشد، این دستور خروجی مشابه زیر را تولید میکند:
Output
redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-04-20 20:40:52 UTC; 4s ago
,Docs: http://redis.io/documentation
man:redis-server(1)
Main PID: 2899 (redis-server)
" Status: "Ready to accept connections
Tasks: 5 (limit: 2327)
Memory: 2.5M
CPU: 65ms
CGroup: /system.slice/redis-server.service
└─2899 "/usr/bin/redis-server 127.0.0.1:6379
. . .
این خروجی نشان میدهد که Redis در حال اجرا است و قبلاً فعال شده است، بطوری تنظیم شده تا هر بار که سرور راهاندازی میشود، اجرا شود.
توجه: این تنظیم برای بسیاری از موارد استفاده متداول از Redis مطلوب است. اگر، با این حال، ترجیح میدهید Redis را هر بار که سرور شما راهاندازی میکند به صورت دستی راهاندازی کنید، میتوانید با دستور زیر این کار را پیکربندی کنید:
sudo systemctl disable redis
برای اینکه اطمینان حاصل کنید که Redis به درستی کار میکند، با استفاده ازredis-cli، به سرور متصل شوید:
redis-cli
در اعلانی که پس از این دستور نمایش داده میشود، اتصال را با دستور ping تست کنید:
Ping ip
Output
PONG
این خروجی تایید میکند که اتصال سرور هنوز فعال است. بعد، بررسی کنید که میتوانید کلیدها را با اجرای:
"!set test "It's working
Output
OK
و مقدار را با دستور زیر بازیابی کنید:
get test ip
با فرض اینکه همه چیز درست کار میکند، شما قادر خواهید بود value که ذخیره کردهاید را بازیابی کنید:
Output
"!It's working"
بعد از تأیید اینکه میتوانید مقدار را بازیابی کنید، از محیط خط فرمان Redis خارج شوید تا به پوسته برگردید:
Exit ip
به عنوان یک آزمایش نهایی، بررسی میکنیم که آیا Redis قادر است دادهها را حتی پس از اینکه متوقف یا دوباره راهاندازی شد، حفظ کند. برای این کار، ابتدا نمونه Redis را دوباره راهاندازی کنید:
sudo systemctl restart redis
سپس با دستور کاربری دوباره متصل شوید:
redis-cli
و تأیید کنید که مقدار آزمایشی شما هنوز در دسترس است:
get test ip
مقدار کلید شما هنوز باید قابل دسترس باشد:
Output
"It's working!"
وقتی کارتان تمام شد، دوباره به پوسته بازگردید:
Exit ip
با این کار، نصب Redis شما بهطور کامل عملیاتی است و برای استفاده آماده است. با این حال، برخی از تنظیمات پیشفرض آن ناامن هستند و به افراد فرصتهایی برای حمله و دسترسی به سرور و دادههای آن را میدهند. مراحل آورده شده در آموزش بعدی روشهایی برای کاهش این آسیبپذیریها را پوشش میدهند، بهطوری که توسط وبسایت رسمی Redis توصیه شدهاند. اگرچه این مراحل اختیاری هستند و Redis بدون آن ها نیز بدرستی عمل خواهد کرد، اما بسیار توصیه میشود که آنها را تکمیل کنید تا امنیت سیستم خود را تقویت کنید.
امیدواریم که این مقاله به شما کمک کرده باشد تا توانسته باشید که redis را بر روی ابونتو خود نصب کرده باشید، در آموزش بعدی در باره ایمن سازی redis نصب شده توضیح خواهیم داد. برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.