Công việc theo lịch
Cùng một cron chạy trên mọi instance, và khóa đảm bảo chính xác một trong số chúng làm việc.
Đảm bảo chỉ một worker chạy một công việc tại một thời điểm, với các khóa tự hết hạn và được chủ sở hữu giải phóng một cách an toàn.
NX chỉ giành nó nếu không ai giữ. PX 30000 khiến nó hết hạn sau 30 giây nếu A chết.
Một hướng dẫn minh họa động với các lệnh HotKV thật và phản hồi ví dụ. Nhấn vào bất kỳ bước nào để nhảy tới đó. Lệnh và phản hồi giữ nguyên bằng tiếng Anh, đúng như bạn gõ và thấy trong HotKV.
Các cron job trên nhiều máy, việc ghi nhận thanh toán và việc dựng lại cache không được chạy hai lần cùng lúc. Một khóa không có thời hạn sẽ bị giữ mãi khi chủ sở hữu của nó sập, và giải phóng khóa bằng DEL thuần túy có thể xóa khóa của người khác sau khi khóa của bạn đã hết hạn.
SET với NX và PX giành một khóa chỉ khi không ai giữ nó, và cho nó thời hạn để chủ sở hữu bị sập không thể giữ nó mãi mãi. Mỗi chủ sở hữu lưu một token ngẫu nhiên làm giá trị. DELEX với IFEQ chỉ xóa khóa nếu nó vẫn giữ token của bạn, đó là cách giải phóng an toàn từng cần đến một script Lua.
NX chỉ giành nó nếu không ai giữ. PX 30000 khiến nó hết hạn sau 30 giây nếu A chết.
SET lock:billing-run tok-a81f NX PX 30000Khóa đang được giữ, nên B nhận nil và bỏ qua lượt chạy này.
SET lock:billing-run tok-b22c NX PX 30000Chỉ một worker chạy công việc thanh toán.
PTTL lock:billing-runDELEX chỉ xóa khóa nếu giá trị vẫn là token của A.
DELEX lock:billing-run IFEQ tok-a81fNếu A quá chậm và B đang giữ khóa, việc giải phóng của A sẽ để yên khóa của B.
DELEX lock:billing-run IFEQ tok-staleCùng một cron chạy trên mọi instance, và khóa đảm bảo chính xác một trong số chúng làm việc.
Các thao tác ghi nhận và hoàn tiền trên một đơn hàng được tuần tự hóa để không bao giờ chồng lấp.
Chỉ một yêu cầu dựng lại một mục cache tốn kém trong khi các yêu cầu khác chờ hoặc phục vụ giá trị cũ.
SET NX PX chỉ giành khóa khi nó rảnh, kèm thời gian chờ.
SETNXPXDELEX IFEQ chỉ xóa nếu giá trị khớp token của bạn.
DELEXKiểm tra thời gian còn lại và gia hạn cho các công việc dài.
PTTLPEXPIREVới giá trị lớn, DELEX IFDEQ so sánh một digest thay vì toàn bộ giá trị.
DIGESTIFDEQNếu khóa của bạn đã hết hạn và một worker khác đã giành nó, một DEL thuần túy sẽ xóa khóa của họ. DELEX IFEQ chỉ xóa nó khi nó vẫn giữ token của bạn.
Dài hơn thời gian công việc thường mất. Với công việc dài, hãy gia hạn định kỳ khi bạn vẫn giữ khóa.
Không. DELEX thực hiện so sánh và xóa trong một lệnh.
HotKV nói giao thức Redis, nên bạn có thể trỏ một client hiện có tới nó và chạy chính những lệnh này.