دیتابیس Redis چیست ؟
Redis مخفف (REmote DIctionary Service) یک بانک اطلاعاتی NoSql کلید/مقدار (key/value) است. در ادامه با آن بیشتر آشنا می شویم.
ردیس رایگان و کد باز است و تحت لیسانس BSD منتشر می شود.
ردیس بانک اطلاعاتی مقیم در حافظه (in-memory data structure store) است که این مهم موجب سرعت و کارایی فوق العاده پاسخدهی شده است.
این پایگاه داده میتواند هم در حافظه اصلی و هم در حافظه جانبی ذخیره شود.
پشتیبانی از زبان های مختلف :
پشتیبانی کامل از زبان های برنامه نویسی مختلف که برای تمامی آنها کتابخانه های متعدد وجود دارد :
از معروفترین زبان های که از ردیس پشتیبانی به عمل می آورند می توان به Bash,C,C#,C++,Go,java,Matlab,node.js,Perl,PHP,Ruby,Swift,Python,VB و ... اشاره کرد.
لیست کامل زبان ها به همراه کتابخانه های مختلف در آدرس https://redis.io/clients در دسترس می باشد.
سیستم عامل های قابل پشتیبانی :
ردیس به زبان ANSI C نوشته شده و با بسیاری از سیستم های Posix مانند خانواده بزرگ لینوکس - یونیکس - BSD ها مانند OpenBSD و FreeBSD و OSx بدون نیاز به پیش نیاز(dependency)خارجی کار می کند.
ردیس توسط شرکت مایکروسافت برای ویندوز نیز آماده شده است.
تاریخچه ردیس :
ردیس در ابتدا توسط یک توسعه دهنده ایتالیایی به نام Salvatore Sanfilippo ایجاد شد در مارس ۲۰۱۰ توسط شرکت vmware مورد توجه قرار گرفت و به صورت جدی بر روی این پروژه سرمایه گذاری شد.
در june 2015 توسعه تحت حمایت شرکت Redis Labs آغاز شد.
برخی از مزایای Redis :
رایگان و کدباز
سادگی در استفاده
ماندگاری (persistence) : اطلاعات شما در اثر ریستارت سرور از بین نمی رود!
پشتیبانی از Replication : ردیس به خوبی از Replication پشتیبانی میکند شما میتوانید سرورهای مختلفی را به صورت Master/Slave یا سناریوهای دلخواه خود اجرا کنید.
استفاده از طیف وسیعی از ساختمان داده ها (Data Type)
- سرعت پاسخدهی فوق العاده
معایب Redis :
درست است که Redis با استفاده از ساختار In-Memory یا مقیم در حافظه کار می کند که باعث سرعت دسترسی و پاسخدهی بسیار عالی می گردد اما حافظه Ram در سرورها و سرورهای ابری (Cloud) معیار اصلی قیمت گذاری است پردازنده و هارد دیسک در معیارهای بعدی هستند.
در نتیجه نیاز زیاد Redis به حافظه می تواند گرانقیت باشد البته درست است که Redis قابلیت استفاده از Virtual momory را دارد اما منجر به استفاده شدید I/O هارد دیسک می شود.
البته این موارد را نیز می توان با استفاده از Raid های سخت افزاری و دیسک های پرسرعت جامد مانند SSD,NVME برطرف نمود.
Data Types ساختمان داده ها :
ردیس یک دیتابیس کلید / مقدار است اما این مقدار قرار نیست همیشه یک رشته string باشد ردیس از پنج نوع داده پشتیبانی می کند :
Strings - رشته :
رشته ها میتوانند هر نوع داده ای باشند یک رشته حداکثر از 512 مگابایت پشتیبانی می کند.
Lists - لیست :
لیست ها در واقع مجموعه ای از رشته ها هستند که به ترتیب درج مرتب شده اند میتوان به اول یا انتهای لیست یک عنصر جدید اضافه کرد.
Sets - مجموعه :
مجموعه در واقع کلکسیون بدون ترتیب از رشته ها هستند میتوان در یک مجموعه رشته جدید اضافه یا حذف یا جستجو کرد.
Sorted Sets - مجموعه مرتب :
همانند مجموعه است با این تفاوت که به هر عنصر مجموعه مرتب یک امتیاز تخصیص می یابد.
Hashes - هَش :
هَش در واقع نگاشتی بین کلید و مقدار است و یک رشته جدید بین آن ها قرار می دهد که برای دسترسی به مقدار نیاز به کلید و هش به صورت همزمان است.