البيانات الأساسيةالأداء

التخزين المؤقت

احتفظ بأكثر بياناتك طلبًا في الذاكرة وأجب عن القراءات في أقل بكثير من ملي ثانية، على محرك يشغّل كل نواة.

GET/s مع pipelining، مقيس
36.6M
دقة TTL
ns
العملاء الحاليون يعملون
RESP2/3
الخطوة 1 من 5
اقرأ عبر الذاكرة المؤقتة

تعود الإصابة مباشرة من الذاكرة. ولا يتم المساس بقاعدة البيانات.

جلسة توضيحيةplaying
# اقرأ عبر الذاكرة المؤقتة
hotkv> GET product:1001
"{\"name\":\"Desk lamp\",\"price\":39}"

عرض متحرك بأوامر HotKV حقيقية وردود توضيحية. انقر على أي خطوة للانتقال إليها. تبقى الأوامر والردود بالإنجليزية، تمامًا كما تكتبها وتراها في HotKV.

المشكلة

قواعد البيانات بطيئة ومكلفة الاستعلام للبيانات التي تُقرأ آلاف المرات في الثانية. فكل مشاهدة صفحة أو استدعاء API أو تحديث للوحة تحكم يكرر الاستعلام نفسه، وتصبح قاعدة البيانات عنق الزجاجة قبل تطبيقك بوقت طويل.

كيف يتعامل HotKV معها

يقف HotKV أمام قاعدة البيانات ويحتفظ بالنتائج في الذاكرة. يقرأ تطبيقك من HotKV أولًا ولا يعود إلى قاعدة البيانات إلا عند الإخفاق. ولأن HotKV ينفّذ الأوامر على خيوط كثيرة في الوقت نفسه، لا تمرّر الذاكرة المؤقتة المزدحمة كل العملاء عبر نواة واحدة، وتتيح لك الوسوم إبطال مجموعة كاملة من الإدخالات عندما تتغير البيانات الأصلية.

خطوة بخطوة

ما يحدث، أمرًا بأمر

  1. 01

    اقرأ عبر الذاكرة المؤقتة

    تعود الإصابة مباشرة من الذاكرة. ولا يتم المساس بقاعدة البيانات.

    GET product:1001
  2. 02

    إخفاق، فحمّل مرة واحدة وخزّن

    عند الإخفاق يقرأ التطبيق قاعدة البيانات مرة واحدة ويخزّن النتيجة مؤقتًا لمدة خمس دقائق.

    SET product:2002 "{\"name\":\"Oak desk\",\"price\":420}" EX 300
  3. 03

    ضع وسومًا للإدخالات حسب ما تعتمد عليه

    كل صفحة مخزنة تعرض منتجات الإضاءة تحمل الوسم نفسه.

    TAG.SET product:1001 catalog:lighting
  4. 04

    أبطل المجموعة

    تغيرت الأسعار. اعرض كل مفتاح يحمل الوسم واحذفها كلها في pipeline واحد.

    TAG.MEMBERS catalog:lighting
  5. 05

    إدخالات قصيرة العمر جدًا

    رمز مؤقت، مُعيَّن بالفعل، يجب أن يختفي بعد 250 ms، بدقة النانوثانية.

    NEXPIRE flash:token:9 250000000
أين يناسب

سيناريوهات من الواقع

المتاجر الإلكترونية

تُقرأ صفحات المنتجات والأسعار ومستويات المخزون آلاف المرات في الثانية، وتُحدَّث حسب الوسم عندما يتغير الكتالوج.

واجهات API وخلفيات الجوال

تُخزَّن استجابات نقاط النهاية الشائعة مع قيم TTL قصيرة، فتصيب ذروات الحركة الذاكرة بدل قاعدة البيانات.

مواقع المحتوى

تُخزَّن الأجزاء المعروضة والبيانات الوصفية للمقالات لدقائق، وتُبطَل حسب الوسم عندما ينشر المحرر.

مدمج

ما تحصل عليه

قيم TTL من الثواني إلى النانوثانية

يعمل EXPIRE وPEXPIRE كما تتوقع. ويضيف NEXPIRE دقة النانوثانية.

EXPIREPEXPIRENEXPIRE

الإبطال حسب الوسم

ضع تسميات للمفاتيح باستخدام TAG.SET، ثم اعثر على كل مفتاح يحمل تسمية.

TAG.SETTAG.MEMBERS

ضغط اختياري

يمكن ضغط الحمولات الكبيرة ليتسع جزء أكبر من مجموعة بياناتك العاملة في الذاكرة.

قراءات متعددة الخيوط

تُنفَّذ الأوامر على خيوط متوازية، فتنمو الإنتاجية مع عدد الأنوية. والأرقام في صفحة الأداء.

GETMGET

أسئلة شائعة

هل يمكنني استخدام عميل Redis الحالي لدي؟

يتحدث HotKV بروتوكول Redis (RESP2 وRESP3)، فتتصل به عملاء Redis القياسية. راجع مرجع الأوامر للأوامر التي تعتمد عليها.

كيف أبطل مجموعة من المفاتيح المخزنة؟

ضع وسومًا للمفاتيح باستخدام TAG.SET عند تخزينها، ثم استدعِ TAG.MEMBERS واحذف ما يعود.

من أين يأتي رقم 36.6M؟

إنه إنتاجية GET مع pipelining من اختبار الأداء المنشور لـ HotKV. والمنهجية والعتاد في صفحة الأداء.

حالات استخدام ذات صلة

جرّبه على عبء عملك

يتحدث HotKV بروتوكول Redis، لذا يمكنك توجيه عميل موجود إليه وتشغيل هذه الأوامر نفسها.