در مقاله دسته بندی دیتابیس ها, به بررسی انواع دیتابس های NoSql پرداخته شد, یک دسته از دیتابیس های ارایه شده, دیتابیس های key value بودند که به عنوان مثال از این دسته, ردیس را نام بردیم. در ادامه این ابزار را دقیق تر بررسی میکنیم.
ابتدا جهت یادآوری به ارایه خلاصه ای از مفهوم دیتابیس های key-value می پردازیم.
همانطور که از نام این دیتابیس ها برمی آید از یک استرینگ به عنوان کلید (key) و یک مدل دلخواه داده, برای مثال اینتیجر, داده جیسون, لیست, BLOB و... به عنوان مقدار (value) استفاده میکنند که کلید باید همیشه یکتا باشد, به این دلیل که سرچ روی آن(key) انجام میشود و به value اشاره میکند.
استفاده ی این نوع دیتابیس ها برای برخی اپلیکیشن هایی است که در آنها عملیات read و write و به طور متوالی و به دفعات انجام میشود, که این دیتابیس های memory-based این کار را به سرعت انجام میدهند, برای اپلیکیشن هایی که نیاز به عمل update به صورت پی دی پی, یا کویری های پیچیده برای رفع نیازشان ندارند و همچنین برای زمانی که نیاز به ذخیره برخی اطلاعات پایه ای داریم برای مثال اطلاعات مشتریان, یک وب پیج بر اساس url و… .
ردیس یکی از این نوع دیتابیس ها می باشد. ردیس که املای انگلیسی آن به صورت Redis است مخفف Remote Dictionary Server می باشد و امروزه به عنوان دیتابیس, کش, message broker و queue و … کاربرد دارد. این ابزار قدرتمند, زمان پاسخگویی بسیار کم - در حد کسری از میلی ثانیه - دارد و میلیون ها رکویست در هر ثانیه را برای اپلیکیشن های real-time فراهم میکند و در صنایع مختلفی چون بازی سازی, سرویس های مالی, اینترنت اشیا, ماشین لرنینگ و… استفاده میشود و به دلیل performance عالی که دارد در کش کردن, تحلیل بلادرنگ, کاربردهای جغرافیایی, ابزارهای چت و… هم به عنوان یکی از محبوب ترین انتخاب ها شناخته شده است.
از مزایای استفاده از ردیس, که ابزاری open source است, میتوان به پرفورمنس بسیار عالی آن اشاره کرد. ردیس یک دیتابس in-memory است و برعکس دیتابیس های قدیمی دیتا را در دیسک نگه نمیدارد -دیتا در مموری است- که این منجر به تاخیر کم برای دسترسی به دیتا میشود و به همین دلیل مشابه, قادر است عملیات بیشتری را در زمان کمتری انجام دهد. همچنین ردیس برخلاف بقیه دیتابیس های key-value انواع مختلفی از ساختارهای داده را پشتیبانی میکند برای مثال strings, list, set, sorted lists, hashes, bitmaps, hyperloglogs, streams, geospatial و … . از دیگر مزایای آن میتوان به سادگی و خوش دستی اشاره کرد :) با استفاده از این ابزار میتوان دستورات پیچیده را به سادگی و کوتاهی نوشت. همچنین ردیس از معماری primary-replica پشتیبانی میکند که این منجر به بهبود پرفورمنس برای عمل read میشود و برای persistancy, دیتا را میتوان در دیسک نیز ذخیره کرد. همچنین ردیس از transaction نیز پشتیبانی میکند و با استفاده از آن میتوان عملیات اتمیک انجام داد و … .
در لینک زیر میتوانید اطلاعات مفصل در مورد انواع ساختارهای داده ای که ردیس از آنها پشتیبانی میکند و همچنین شیوه ی استفاده از آنها را به دست آوردید: