انتشار Redis 6.0 DBMS

آماده شده انتشار DBMS ردیس 6.0، متعلق به کلاس سیستم های NoSQL. Redis عملکردهایی شبیه Memcached را برای ذخیره داده‌های کلید/مقدار ارائه می‌کند که با پشتیبانی از فرمت‌های داده‌های ساختاریافته مانند لیست‌ها، هش‌ها و مجموعه‌ها و توانایی اجرای اسکریپت‌های کنترل‌کننده Lua سمت سرور تقویت شده‌اند. کد پروژه عرضه شده تحت مجوز BSD ماژول های اضافی که از سال گذشته قابلیت های پیشرفته ای را برای کاربران سازمانی مانند RediSearch، RedisGraph، RedisJSON، RedisML، RedisBloom ارائه می دهند. عرضه شده است تحت مجوز اختصاصی RSAL. توسعه نسخه های باز این ماژول ها تحت مجوز AGPLv3 توسط پروژه ادامه می یابد فرم خوب.

برخلاف Memcached، Redis ذخیره سازی دائمی داده ها را بر روی دیسک فراهم می کند و ایمنی پایگاه داده را در صورت خاموش شدن اضطراری تضمین می کند. کد منبع پروژه تحت مجوز BSD توزیع شده است. کتابخانه های کلاینت برای اکثر زبان های معروف از جمله Perl، Python، PHP، Java، Ruby و Tcl در دسترس هستند. Redis از تراکنش‌هایی پشتیبانی می‌کند که به شما امکان می‌دهد گروهی از دستورات را در یک مرحله اجرا کنید، از ثبات و سازگاری (دستورات سایر درخواست‌ها نمی‌توانند تداخلی ایجاد کنند) در اجرای مجموعه‌ای از دستورات، و در صورت بروز مشکل، به شما امکان می‌دهد به عقب برگردید. تغییر می کند. تمام داده ها به طور کامل در حافظه رم ذخیره می شوند.

دستوراتی مانند افزایش/کاهش، لیست استاندارد و عملیات مجموعه (اتحاد، تقاطع)، تغییر نام کلید، انتخاب های متعدد و توابع مرتب سازی برای مدیریت داده ها ارائه شده است. دو حالت ذخیره‌سازی پشتیبانی می‌شود: همگام‌سازی دوره‌ای داده‌ها با دیسک و نگهداری گزارش تغییرات روی دیسک. در حالت دوم، ایمنی کامل همه تغییرات تضمین شده است. امکان سازماندهی تکثیر داده های master-slave در چندین سرور وجود دارد که در حالت غیر مسدود کننده انجام می شود. حالت پیام «انتشار/اشتراک» نیز موجود است که در آن کانالی ایجاد می‌شود و پیام‌های آن با اشتراک به مشتریان توزیع می‌شود.

کلید پیشرفت هااضافه شده در Redis 6.0:

  • به‌طور پیش‌فرض، پروتکل جدید RESP3 پیشنهاد می‌شود، اما راه‌اندازی اتصال در حالت RESP2 آغاز می‌شود و کلاینت تنها در صورتی به پروتکل جدید سوئیچ می‌کند که فرمان جدید HELLO هنگام مذاکره برای اتصال استفاده شود. RESP3 به شما امکان می دهد تا به طور مستقیم انواع داده های پیچیده را بدون نیاز به تبدیل آرایه های عمومی در سمت مشتری و با جداسازی انواع برگشتی برگردانید.
  • پشتیبانی از لیست کنترل دسترسی (ACL) به شما امکان می دهد دقیقاً تعیین کنید که کدام عملیات می تواند توسط مشتری انجام شود و کدام نمی تواند. ACL ها همچنین محافظت در برابر خطاهای احتمالی را در حین توسعه ممکن می کنند، به عنوان مثال، کنترل کننده ای که فقط عملیات BRPOPLPUSH را انجام می دهد می تواند از اجرای سایر عملیات منع شود و اگر فراخوانی FLUSHALL اضافه شده در حین اشکال زدایی به طور تصادفی در کد تولید فراموش شود، این کار باعث می شود منجر به مشکلات نشود اجرای ACL هیچ سربار اضافی را متحمل نمی شود و عملاً هیچ تأثیری بر عملکرد ندارد. ماژول های رابط نیز برای ACL آماده شده اند و این امکان را فراهم می کنند تا روش های احراز هویت خود را ایجاد کنید. برای مشاهده تمام تخلفات ثبت شده ACL، دستور "ACL LOG" ارائه شده است. برای تولید کلیدهای نشست غیرقابل پیش بینی، دستور "ACL GENPASS" با استفاده از HMAC مبتنی بر SHA256 اضافه شده است.
  • پشتیبانی SSL / TLS برای رمزگذاری کانال ارتباطی بین مشتری و سرور.
  • پشتیبانی کش کردن داده ها در سمت مشتری برای تطبیق حافظه پنهان سمت سرویس گیرنده با وضعیت پایگاه داده، دو حالت در دسترس است: 1. به خاطر سپردن کلیدهایی که مشتری قبلاً درخواست کرده است تا از بین رفتن ارتباط ورودی در کش مشتری مطلع شود. 2. مکانیسم "پخش"، که در آن مشتری مشترک پیشوندهای کلیدی خاصی می شود و سرور در صورت تغییر کلیدهایی که تحت این پیشوندها قرار می گیرند به آن اطلاع می دهد. مزیت حالت "پخش" این است که سرور حافظه اضافی را برای ذخیره نقشه مقادیر ذخیره شده در سمت مشتری هدر نمی دهد، اما نقطه ضعف آن افزایش تعداد پیام های ارسال شده است.
  • کارگزار پیام Disque که به شما امکان می دهد از Redis برای پردازش صف های پیام استفاده کنید، از ساختار اصلی حذف شده است. ماژول جداگانه.
  • اضافه Cluster Proxy، یک پروکسی برای خوشه ای از سرورهای Redis، که به یک کلاینت اجازه می دهد تا کار با چندین سرور Redis را طوری سازماندهی کند که گویی یک نمونه واحد هستند. پروکسی می‌تواند درخواست‌ها را به گره‌ها با داده‌های لازم، اتصالات چندگانه، پیکربندی مجدد خوشه در صورت شناسایی خرابی گره‌ها، و اجرای درخواست‌هایی که چندین گره را شامل می‌شوند، هدایت کند.
  • API برای نوشتن ماژول ها به طور قابل توجهی بهبود یافته است و اساسا Redis را به چارچوبی تبدیل می کند که به شما امکان می دهد سیستم هایی را در قالب ماژول های اضافی ایجاد کنید.
  • یک حالت تکرار پیاده سازی شده است که در آن فایل های RDB بلافاصله پس از استفاده حذف می شوند.
  • پروتکل تکثیر PSYNC2 بهبود یافته است، که با افزایش شانس شناسایی افست‌های مشترک برای replica و master، امکان همگام‌سازی مجدد جزئی را بیشتر می‌کند.
  • بارگیری فایل های RDB تسریع شده است. بسته به محتوای فایل، شتاب بین 20 تا 30 درصد است. اجرای دستور INFO زمانی که تعداد زیادی کلاینت متصل وجود داشته باشد به میزان قابل توجهی تسریع شده است.
  • دستور STRALGO جدید با اجرای الگوریتم های پیچیده پردازش رشته اضافه شده است. در حال حاضر، تنها یک الگوریتم LCS (طولانی ترین زیر دنباله متداول) موجود است که می تواند هنگام مقایسه توالی های RNA و DNA مفید باشد.

منبع: opennet.ru

اضافه کردن نظر