Bạn không cần phải hack bất cứ thứ gì;)
Tôi không hoàn toàn chắc chắn tại sao bạn cần dữ liệu trên mysql. Nếu tôi biết, có lẽ sẽ có một câu trả lời phù hợp hơn. Trong mọi trường hợp, như một câu trả lời chung, bạn có thể sử dụng thông báo redis keyspace
Bạn có thể đăng ký các lệnh HSET, HMSET, HDEL và DEL trên các khóa của mình, vì vậy bạn sẽ nhận được thông báo mỗi khi khóa bị xóa hoặc giá trị băm được đặt hoặc xóa.
Lưu ý nếu bạn bỏ lỡ bất kỳ thông báo nào, bạn sẽ có sự mâu thuẫn. Vì vậy, thỉnh thoảng bạn chỉ có thể sử dụng lệnh SCAN để xem qua tất cả các khóa của mình và kiểm tra trên mysql nếu chúng cần được cập nhật.
Một chiến lược khác có thể là duy trì hai cấu trúc riêng biệt. Một sẽ là hàm băm với các giá trị và cái kia sẽ là một ZSET của tất cả các giá trị được sắp xếp theo dấu thời gian của bản cập nhật. Cách tốt nhất để giữ cho cả hai cấu trúc được cập nhật là viết hai hoặc ba tập lệnh lua (chèn / cập nhật và xóa) hoạt động trên băm và nguyên tử zset.
Sau đó, bạn có thể chỉ cần định kỳ truy vấn ZSET cho các phần tử có dấu thời gian cao hơn hoạt động đồng bộ hóa cuối cùng của bạn, lấy tất cả các khóa đã được cập nhật (nó sẽ bao gồm các khóa đã xóa, trừ khi bạn muốn giữ lại một ZSET thứ hai dành riêng cho những người đó) và sau đó chỉ truy xuất tất cả các phần tử bằng khóa và đồng bộ hóa với mysql.
Hy vọng nó sẽ hiệu quả với bạn!