Redis là máy chủ không đồng bộ không chặn, không có ngữ nghĩa nào được tích hợp sẵn để redis chặn trên kết nối máy khách cho đến khi có khóa là miễn phí.
Lưu ý:Redis là một kho lưu trữ dữ liệu NoSQL từ xa, do đó, bất kỳ khóa nào bạn triển khai liên quan đến redis đều được 'phân phối' theo thiết kế. ServiceStack's AcquireLock sử dụng SETNX nguyên thủy của redis khóa ngữ nghĩa để đảm bảo chỉ có 1 kết nối máy khách có khóa, tất cả các máy khách / kết nối khác vẫn đang bị chặn cho đến khi khóa được giải phóng bằng cách sử dụng hệ số nhân thử lại theo cấp số nhân để thăm dò ý kiến.
Để triển khai khóa phân tán mà không cần thăm dò ý kiến, bạn cần tạo một giải pháp sử dụng kết hợp hỗ trợ Pub / Sub của SETNX + redis để thông báo cho các khách hàng đang chờ rằng khóa đã được giải phóng.