נתוני ליבהביצועים

מטמון

שומרים את הנתונים החמים ביותר בזיכרון ועונים על קריאות בהרבה פחות ממילישנייה, על מנוע שמפעיל כל ליבה.

GET/s ב-pipeline, נמדד
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 ב-pipeline ממדד הביצועים שפורסם של HotKV. השיטה והחומרה מופיעות בעמוד הביצועים.

שימושים קשורים

נסו על עומס העבודה שלכם

HotKV מדבר את פרוטוקול Redis, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.