آموزش نصب Redis بر روی Centos 8
با عرض سلام خدمت شما دوستان عزیز;
در این مقاله میخواهیم آموزش نصب Redis 4 را بر روی Centos 8/RHEL 8 را برای شما عزیزان قرار دهیم. با مطالعه این مقاله شما میتوانید Redis را بر روی سرور با سیستم عامل Centos 8 / RHEL 8 نصب و کانفیگ نمایید.
Redis یک ابزار مدیریت اطلاعات در حافظه میباشد. از این ابزار میتوانید برای سرور های دیتابیس، Message Broker ها و یا به عنوان یک Cache برای افزایش سرعت سرور خود استفاده نمایید.
Redis از ساختار های اطلاعاتی زیر پشتیبانی میکند:
- Hashes
- sets with range queries
- Strings
- sorted lists
- Hyperloglogs
- Bitmaps
- Geospatial indexes e.t.c
آموزش نصب Redis بر روی Centos 8 / RHEL 8
Redis برای نصب در سیستم Repository نصب نرم افزار Centos 8 / RHEL 8 موجود میباشد. برای مشاهده پکیج های موجود میتوانید از دستور yum module list redis استفاده نمایید:
$ yum module list redis Updating Subscription Management repositories. Updating Subscription Management repositories. Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary redis 4.0 [d] default [d] Redis persistent key-value database Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
همانطور که از خروجی نیز مشخص است نسخه 4.0 برای نصب از طریق Package manager فعال میباشد. برای نصب میتوانید از دستور زیر استفاده نمایید.
sudo yum install -y @redis
پس از نصب Redis را فعال میکنیم تا در زمان بوت سیستم عامل شروع به کار نماید:
sudo systemctl enable --now redis
پس از انجام دستور بالا سرویس Redis باید شروع به کار کرده باشد و وضعیت ان نیز فعال باشد. با استفاده از دستور sudo systemctl status redis وضعیت سرویس Redis را برسی نمایید:
$ sudo systemctl status redis ● redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d └─limit.conf Active: active (running) since Sat 2018-12-29 10:00:40 EAT; 5s ago Main PID: 30348 (redis-server) Tasks: 4 (limit: 11510) Memory: 6.4M CGroup: /system.slice/redis.service └─30348 /usr/bin/redis-server 127.0.0.1:6379 Dec 29 10:00:40 rhel8.local systemd[1]: Starting Redis persistent key-value database… Dec 29 10:00:40 rhel8.local systemd[1]: Started Redis persistent key-value database.
تنظیم Redis بر روی سرور Centos 8 / RHEL 8
حال که Redis را بر روی سرور نصب کرده ایم میتوانیم تنظیمات ان را انجام دهیم. در حالت پیشفرض Redis بر روی ای پی 127.0.0.1 در حالت Listen قرار دارد. در صورتی که مایلید سرویس Redis به صورت ریموت هم در دسترس باشد میتوانید Redis برای همه Interface های سرور بر روی حالت Listen قرار دهید.
$ ss -tunelp | grep 6379 tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=30348,fd=6)) uid:986 ino:71091 sk:4 <->
برای این کار فایل تنظیمات Redis که redis.conf نام دارد را با استفاده از ادیتور متن ویرایش نمایید:
sudo vim /etc/redis.conf
سپس خط 69 که bind 127.0.0.1 را به صورت زیر تغییر دهید:
bind 0.0.0.0
پس از تغییرات باید سرویس Redis را Restart کنید تا تغییرات اعمال شود:
sudo systemctl restart redis
میتوانید با دستور زیر اعمال تغییرات را برسی نمایید:
$ ss -tunelp | grep 6379 tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=30348,fd=6)) uid:986 ino:71091 sk:4 <->
تنظیم Redis برای اعتبار سنجی اتصال Client ها
قبل از انجام هر دستور توسط Client ها میتوانید Authentication یا اعتبار سنجی را برای Client ها ضروری کنید. برای این منظور مانند مرحله قبل وارد فایل کانفیگ Redis شده و requirepass را از حالت کامت خارج نمایید.
requirepass YourStrongPassword
تنظیم Persistent Store بر روی حالت ریکاوری
برای این منظور متغییر appendonly را در فایل تنظیمات Redis بر روی yes قرار داده و تنظیمات را مانند متن زیر انجام دهید:
appendonly yes appendfilename "appendonly.aof"
سپس برای اعمال تغییرات Redis را ریستارت نمایید.
sudo systemctl restart redis
تنظیمات فایروال برای Redis
اگر از یک فایروال بر روی سرور فعال است پورت 6379 را باز کنید. ما این عمل را بر روی فایروال firewalld انجام میدهیم. برای باز کردن پورت 6379 کافیست دستورات زیر را در فایروال وارد نمایید:
sudo firewall-cmd --add-port=6379/tcp --permanenent sudo firewall-cmd --reload
پس از اعمال تغییرات وضعیت Redis را برسی نمایید تا از فعال بودن ان اطمینان داشته باشید. باید توجه داشته باشید در صورت اعمال تغییرات اشتباه در فایل کانفیگ ممکن است سرویس Redis استارت نشود.
sudo systemctl status redis ● redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d └─limit.conf Active: active (running) since Sat 2018-12-29 10:11:56 EAT; 9s ago Process: 30485 ExecStop=/usr/libexec/redis-shutdown (code=exited, status=0/SUCCESS) Main PID: 30500 (redis-server) Tasks: 4 (limit: 11510) Memory: 6.4M CGroup: /system.slice/redis.service └─30500 /usr/bin/redis-server 0.0.0.0:6379 Dec 29 10:11:56 rhel8.local systemd[1]: Stopped Redis persistent key-value database. Dec 29 10:11:56 rhel8.local systemd[1]: Starting Redis persistent key-value database… Dec 29 10:11:56 rhel8.local systemd[1]: Started Redis persistent key-value database.
اتصال به محیط CLI سرویس Redis
برای اتصال به Redis در حالت لوکال از دستور redis-cli استفاده نمایید:
$ redis-cli 127.0.0.1:6379> INFO NOAUTH Authentication required.
خروجی ممکن است مشابه زیر باشد:
127.0.0.1:6379> AUTHOK
در صورت لاگین صحیح باید OK را مشاهده نمایید. در صورت ورود کلمه عبور اشتباه ممکن است با ارور زیر مواجه شوید:
127.0.0.1:6379> AUTH WrongPassword (error) ERR invalid password
پس از ورود میتوانید با دستور INFO اطلاعات Redis را برسی نمایید:
127.0.0.1:6379> INFO
با استفاده از دستور بالا ممکن است اطلاعات متنوعی برای شما نمایش داده شود. برای کاهش اطلاعات نمایش داده شده میتوانید در کنار دستور از توابع دیگری استفاده نمایید(در اینجا از server استفاده شده است):
127.0.0.1:6379> INFO Server Server redis_version:4.0.10 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:fdf31b4ab3504500 redis_mode:standalone os:Linux 4.18.0-32.el8.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:8.2.1 process_id:30500 run_id:d8c5ba56a0735a6831a0b3467c3efa95ac174cdd tcp_port:6379 uptime_in_seconds:222 uptime_in_days:0 hz:10 lru_clock:2563866 executable:/usr/bin/redis-server config_file:/etc/redis.conf
انجام عملیات تست بازدهی یا بنچمارک (Benchmark) گرفتن در Redis
برای تست سرور خود میتوانید با اعمال بار بر روی Redis بازدهی ان را برسی نمایید. برای تست با استفاده از 10 کانکشن همزمان () و ارسال 100,000 درخواست بازدهی Redis را برسی میکنیم.
# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 10 .................................................. 100.00% <= 0 milliseconds 85470.09 requests per second ====== LRANGE_500 (first 450 elements) ====== 100000 requests completed in 1.17 seconds 10 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 85397.09 requests per second ====== LRANGE_600 (first 600 elements) ====== 100000 requests completed in 1.18 seconds 10 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 84530.86 requests per second ====== MSET (10 keys) ====== 100000 requests completed in 1.18 seconds 10 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 84961.77 requests per second
برای استفاده از امکانات بیشتر تست بازدهی میتوانید از راهنمای ان استفاده نمایید:
redis-benchmark --help
برای نمایش های client های لوکال از دستور client list استفاده نمایید:
127.0.0.1:6379> client list id=185 addr=127.0.0.1:54300 fd=8 name= age=75 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
استفاده از Redis با Python
برای استفاده از Redis و Python باید کتابخانه python مربوط به Redis را نصب نمایید. برای نصب دستور زیر را وارد نمایید:
sudo yum -y install python-redis
استفاده از Redis و PHP
برای اتصال Redis به PHP میتوانید ماژول های PHP مربوط به ان را نصب نمایید. برای نصب دستور زیر را وارد نمایید:
sudo yum -y install php-pecl-redis
امیدواریم این مقاله آموزشی برای شما مفید بوده باشد.
واحد متحوا
منبع: Redis.io
نوشته آموزش نصب Redis بر روی سرور Centos 8 / RHEL 8 اولین بار در ویکـی کانـفیـگ پدیدار شد.