משימות מתוזמנות
אותו cron רץ בכל מופע, והמנעול מבטיח שבדיוק אחד מהם מבצע את העבודה.
מוודאים שרק עובד אחד מריץ משימה בכל פעם, עם מנעולים שפגים מעצמם ומשוחררים בבטחה על ידי הבעלים שלהם.
NX לוקח אותו רק אם אף אחד לא מחזיק בו. PX 30000 גורם לו לפוג תוך 30 שניות אם A מת.
הדגמה מונפשת עם פקודות HotKV אמיתיות ותשובות לדוגמה. לחצו על כל שלב כדי לעבור אליו. הפקודות והתשובות נשארות באנגלית, בדיוק כפי שמקלידים ורואים ב-HotKV.
משימות cron על כמה מכונות, גבייה של תשלומים ובנייה מחדש של מטמון אסור שירוצו פעמיים בו זמנית. מנעול בלי תפוגה נשאר תפוס לנצח כשהבעלים שלו קורס, ושחרור מנעול עם DEL פשוט יכול למחוק את המנעול של מישהו אחר אחרי שהמנעול שלכם פג.
SET עם NX ו-PX תופס מנעול רק אם אף אחד לא מחזיק בו, ונותן לו תפוגה כדי שבעלים שקרס לא יוכל להחזיק בו לנצח. כל בעלים שומר אסימון אקראי כערך. DELEX עם IFEQ מוחק את המנעול רק אם הוא עדיין מחזיק את האסימון שלכם, וזה השחרור הבטוח שפעם דרש סקריפט Lua.
NX לוקח אותו רק אם אף אחד לא מחזיק בו. PX 30000 גורם לו לפוג תוך 30 שניות אם A מת.
SET lock:billing-run tok-a81f NX PX 30000המנעול תפוס, ולכן B מקבל nil ומדלג על ההרצה הזו.
SET lock:billing-run tok-b22c NX PX 30000רק עובד אחד מריץ את משימת החיוב.
PTTL lock:billing-runDELEX מוחק את המפתח רק אם הערך עדיין האסימון של A.
DELEX lock:billing-run IFEQ tok-a81fאילו A היה איטי מדי ו-B החזיק עכשיו את המנעול, השחרור של A היה משאיר את המנעול של B במקומו.
DELEX lock:billing-run IFEQ tok-staleאותו cron רץ בכל מופע, והמנעול מבטיח שבדיוק אחד מהם מבצע את העבודה.
פעולות גבייה והחזר על הזמנה אחת מסודרות בתור כך שאף פעם לא חופפות.
רק בקשה אחת בונה מחדש רשומת מטמון יקרה בזמן שהאחרות ממתינות או מגישות את הערך הישן.
SET NX PX לוקח את המנעול רק אם הוא פנוי, עם פסק זמן.
SETNXPXDELEX IFEQ מוחק רק אם הערך תואם לאסימון שלכם.
DELEXבודקים את הזמן שנותר ומאריכים אותו למשימות ארוכות.
PTTLPEXPIREלערכים גדולים, DELEX IFDEQ משווה תמצית במקום הערך המלא.
DIGESTIFDEQאם המנעול שלכם פג ועובד אחר לקח אותו, DEL פשוט היה מוחק את המנעול שלו. DELEX IFEQ מוחק אותו רק כל עוד הוא עדיין מחזיק את האסימון שלכם.
יותר ממה שהמשימה לוקחת בדרך כלל. למשימות ארוכות, מאריכים את התפוגה מדי פעם כל עוד מחזיקים במנעול.
לא. DELEX מבצע את ההשוואה והמחיקה בפקודה אחת.
HotKV מדבר את פרוטוקול Redis, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.