آموزش نصب دیتابیس Redis در Ubuntu 20.04
Redis یک کش حافظه رم in-memory cache است که معمولاً به عنوان بانک اطلاعاتی برای ذخیره سازی ساختار داده مانند رشته ها ، هش ها ، لیست ها ، مجموعه ها ، مجموعه های مرتب شده استفاده می شود. در سطح بالاتری برای اجرا میتونه high availability رو طریق Redis Sentinel ، مانیتورینگ ، اطلاع رسانی خودکار برای failover و automatic partitioning across multiple Redis nodes پیاده سازی کنه.
برای نصب Redis ، کافیست دستورات زیر را در خط فرمان اوبونتو اجرا کنید.
sudo apt update sudo apt install redis-server
پس از اجرای دستورات فوق ، Redis server باید نصب و آماده استفاده شود. از دستورات زیر می توان برای stop, start و enable کردن Redis Server در زمان start up و boot سیستم عامل استفاده کرد.
sudo systemctl stop redis-server sudo systemctl start redis-server sudo systemctl enable redis-server
برای بررسی وضعیت redis-server ، دستورات زیر را اجرا کنید
sudo systemctl status redis-server
خروجی باید به شکل زیر باشه
Output:
redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-11-29 09:02:30 CST; 15s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 26589 (redis-server)
Tasks: 4 (limit: 4674)
CGroup: /system.slice/redis-server.service
└─26589 /usr/bin/redis-server 127.0.0.1:6379
...................................................
اکنون که Redis Server نصب و وضعیتش بررسی شد ، از مراحل زیر برای پیکربندی ورود از راه دور (remote login) و تنظیم فایروال اوبونتو استفاده کنید .. به طور پیش فرض ، Redis اجازه نمی دهد از راه دور (دسترسی از سرور / کلاینت های مختلف) دسترسی داشته باشد. همه دسترسی محدود به local host سروری هست که روی آن نصب شده. (به عنوان مثال: 127.0.0.1). در اکثر environments ها ، Redis Server و برنامه های پشتیبانی شده روی یک سرور واحد در حال اجرا هستند. در این شرایط ، هیچ دسترسی از راه دور لازم نیست ، زیرا تمام ارتباطات بر روی رایانه یک میزبان انجام می شود. اما اگر سرور Redis و برنامه هایی که از آن استفاده می کنند روی هاست جداگانه ای باشند ، دسترسی از راه دور لازم خواهد بود. برای اجازه دسترسی از راه دور ، با اجرای دستورات زیر فایل پیکربندی Redis را باز کنید:
sudo nano /etc/redis/redis.conf
سپس خط مشخص شده را مطابق شکل زیر تغییر دهید. اساسا 127.0.0.1 را با همه صفرها جایگزین کنید (0.0.0.0) یا دسترسی را فقط به IP میزبان خاص که به Redis نیاز دارد محدود کنید.
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0 ::1
# Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited.
بعد از انجام تغییرات و ذخیره سازی ، سرویس Redis رو ریستارت کنین
sudo systemctl restart redis-server
تیید کنید که Redis با اجرای دستورات زیر تمام اتصالات را در 0.0.0.0 برقرار میشود:
ss -an | grep 6379
خروجی باید به شکل زیر باشه
Output:
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:*
tcp LISTEN 0 128 [::1]:6379 [::]:*
اگر فایروال اوبونتو در حال اجرا هست، دستور زیر را اجرا کنین تا همه میزبان های ساب نت(192.168.0.0) دسترسی به Redis server و شماره پورت Redis داشته باشید.
sudo ufw allow proto tcp from 192.168.0.0/24 to any port 6379
برای بررسی اینکه Redis در آدرس IP 192.168.0.2 میزبانی شده، به میزبان های از راه دور پاسخ می دهد. دستورات زیر را از اجرا کنین
redis-cli -h 192.168.0.2 ping
سرور Redis باید به یک Pong پاسخ دهد اگر پاسخ صحیحی دریافت کردید ، تمام مراحل به درستی انجام شده.