Redis چیست : آشنایی با این سیستم و دستورات آن

  • آخرین بروزرسانی در چهارشنبه 11 نوامبر 2020

    Average rating 5 / 5. Vote count: 1

یک پروژه تحت وب را در نظر بگیرید که تعداد کاربرانی که از آن استفاده می کنند روز به روز بیشتر می شود. نتیجه این است که تعداد درخواست ها به پایگاه داده بیشتر میب شود، زمان پاسخگویی بیشتر می شود و بنابراین هزینه نگهداری از این سیستم نیز بیشتر می شود. Redis یکی از راهکار هایی است که در چنین مواقعی می توان به آن مراجعه کرد و در این نوشته می خواهیم بدانیم که این سیستم چیست و چگونه می توان با دستورات جادویی آن بدون نیاز به افزایش هزینه نگهداری، مقیاس کاربران یک سیستم افزایش یابد.

شاید به عنوان یک تازه کار در زمینه فناوری اطلاعاتی و کار با پایگاه های داده فکر کنید که تنها راه نگهداری از داده ها پایگاه های داده یا همان Database ها هستند؛ اشتباه می کنید!

به منظور کاهش تعداد درخواست هایی که به یک پایگاه داده ارسال می شود، می توانید از تکنیکی تحت عنوان “Caching” استفاده کنید.

Caching به چه معناست؟

کش کردن یا Caching فرآیند نگهداری داده ها در Cache است. Cache یک فضای ذخیره سازی موقت است که داده در آن نگهداری می شود تا در آینده داده سریع تر ارائه شود.

یکی از راهکار ها برای Caching همین Redis است که در ادامه قصد توضیح چیستی آن را داریم.

Redis چیست؟

بر اساس تعریف وب سایت رسمی آن، Redis یک روش متن باز (تحت گواهی BSD) ذخیره سازی داده به صورت ساخت یافته و در حافظه موقت است که می توان از آن به عنوان یک واسطه برای پایگاه داده، کش و تبادل پیام استفاده کرد.

این سیستم از انواع مختلفی داده از جمله String، Hash، List، Set و… پشتیبانی می کند.

استفاده از Redis چه مزایایی دارد؟

این سیستم به شدت سریع و همچنین به زبان C نوشته شده است.

دوم این که این سیستم به نوعی یک پایگاه داده های NoSQL است.

سوم این که در حال حاضر بسیاری از غول های فناوری مانند گیت هاب، Weibo، پینترست، اسنپ چت، Craigslist، استک آورفلو، Digg، فلیکر از این سیستم استفاده می کنند.

چهارم این که شما می توانید برای کاهش درخواست هایی که به سمت پایگاه داده ابری شما روانه می شود (مثلا آمازون) و همچنین کاهش هزینه آن از Caching استفاده کنید.

پنجم این که این سیستم بسیار دولپر پسند است یعنی از این سیستم در بسیاری از زبان های برنامه نویسی از جمله جاوا اسکریپت، جاوا، Go، سی، سی پلاس پلاس، سی شارپ، پایتون، سی شی گرا، PHP و بسیاری از زبان های شناخته شده پشتیبانی می شود.

ششم و آخرین نکته این که این پروژه متن باز و پایدار است و بنابراین می توان به آن اعتماد کرد.

آشنایی با برخی دستورات در Redis

اگر چه Redis دارای مستندات است و به راحتی می توانید با مراجعه به آن با دستورات مختلفی که دارد برای کار آشنا شوید، اما برای این که کمی بیشتر با این زبان به صورت عملی آشنا شوید برخی از دستورات Redis را بررسی می کنیم.

دستوراتی که در ادامه می بینید در Redis-CLI که روی پرت 6379 کار می کند، اجرا شده است.

SET (تعریف کلید و مقدار)

127.0.0.1:6379> SET foo "Hello World"
OK // setting a key

GET (فراخوانی مقدار یک کلید)

127.0.0.1:6379> GET foo
"Hello World" // getting a key

DEL (حذف یک کلید)

127.0.0.1:6379> GET foo 
"Hello World" // getting a key
127.0.0.1:6379> DEL foo
(integer) 1 // key just got deleted
127.0.0.1:6379> GET foo
(nil) // since key is deleted therefore, result is nil.

SETEX (تعریف یک کلید با مدت اعتبار)

127.0.0.1:6379> SETEX foo 40 "I said, Hello World!"
OK // key has been set with 40 seconds as expiration

TTL (دریافت زمان باقی مانده برای کلیدی که مدت اعتبار خاصی دارد)

127.0.0.1:6379> TTL foo
(integer) 36 // 36 seconds left to timeout

PERSIST (تبدیل یک کلید از اعتباری به دائمی)

127.0.0.1:6379> PERSIST foo
(integer) 1 // turning the key from volatile to persistent (key won't expire)

RENAME (تغییر نام کلید از پیش تعریف شده)

127.0.0.1:6379> RENAME foo bar
OK // renaming the key 'foo' as bar

FLUSHALL (حذف هر آن چیزی که تا به حال ذخیره شده)

127.0.0.1:6379> flushall
OK // just got flushed

تا به اینجا شما با یک مقدمه از این که چه کارهایی می توانید با Redis انجام دهید، روبرو بودید.

نکته مهمی که باید به آن توجه کنید این است که Redis اطلاعات خود را در حافظه RAM نگهداری می کند و بنابراین با ریستارت شدن سرور اطلاعات از بین می رود.

Redis بسیار قدرتمند است و حتی می توانید از آن به صورت روزانه برای دریافت عملکردی سریع در انتقال داده ها بین اپلیکیشن های مختلف استفاده کنید.

آیا Redis یک پایگاه داده است؟

بله Redis یک پایگاه داده NoSQL به حساب می آید به این معنا که می توانید از آن برای روشی به عنوان نگهداری از داده های غیر رابطه ای استفاده کنید

آیا Redis یک جایگزین برای MySQL است؟

با توجه به این که Redis برای ذخیره داده ها از حافظه موقت RAM استفاده می کند نمی توان آن را جایگزینی برای MySQL دانست. برنامه نویس ها می توانند از Redis در کنار MySQL برای کاهش تعداد درخواست ها به MySQL در مواقعی که داده های تکراری مورد نیاز است، استفاده کنند.

چه مقدار RAM برای راه اندازی Redis نیاز است؟

این سیستم بین 2 تا 3 برابر اندازه داده هایش به فضای RAM نیاز دارد.

هر کلید در Redis مقداری به چه اندازه می تواند داشته باشد؟

هر کلید در Redis می تواند مقداری به اندازه حداکثر 512 مگابایت داشته باشد.

برای دنبال کردن نوشته های کاپ کد به کانال تلگرامی آن (cupcode_ir@) بپیوندید!
برای ثبت سفارش برنامه نویسی، طراحی وب سایت، بهینه سازی و... در کاپ کد کلیک کنید.

دیدگاه خود را بیان کنید

@