Distributed lock ทำหน้าที่ประสานการเข้าถึงทรัพยากรที่ใช้ร่วมกันข้ามหลายโพรเซส/เซิร์ฟเวอร์ เพื่อให้มีเพียงตัวเดียวที่ถือ lock อยู่ในแต่ละช่วงเวลา Redis มักถูกใช้เพื่อการนี้ผ่านการ set-if-not-exists แบบ atomic พร้อม TTL — แม้ว่าการทำให้ถูกต้องจะต้องอาศัยความระมัดระวัง (และเข้าใจข้อจำกัดของมัน)
Redis lock พื้นฐาน (SET NX พร้อม TTL)
token = ();
acquired = redis.(, token, , , );
(acquired) {
{
} {
(, token);
}
}
