Tôi có kiểu TicketType
có khoảng 500 trường hợp.Vô hiệu hóa một số khóa bộ nhớ cache được nhóm lại
Nó chỉ thay đổi vài lần mỗi tuần.
Nhưng nếu thay đổi, tôi cần phải làm mất hiệu lực tất cả giá trị được lưu trong bộ nhớ cache sử dụng TicketTypes cũ.
Rất tiếc, một số khóa bộ nhớ cache không được sửa. Chúng chứa dữ liệu được tính toán.
tôi thấy các giải pháp này:
Sử dụng đối số version
và cập nhật giá trị phiên bản trên một bài tiết kiệm xử lý tín hiệu của TicketType
.
Sử dụng tiền tố chung cho tất cả các khóa bộ nhớ cache dựa trên Loại vé. Sau đó, vô hiệu hóa tất cả các khóa bộ nhớ cache trong trình xử lý tín hiệu lưu bài đăng.
Tôi đoán có một cách thứ ba, và tốt hơn ...
Ví dụ:
TicketType là một cái cây. Mức độ hiển thị của TicketTypes bị ràng buộc với quyền. Hai người dùng có thể thấy cây theo một cách khác, nếu họ có các quyền khác nhau. Chúng tôi lưu trữ nó, theo các điều khoản. Quyền của người dùng được đăng và được băm. Chìa khóa bộ nhớ cache được tạo ra bằng cách tạo ra một chuỗi chứa băm và một phần cố định:
hash_key='ticket-type-tree--%s' % hashed_permissions
Nếu những thay đổi cây TicketType, chúng ta cần phải chắc chắn, không có dữ liệu cũ được nạp từ bộ nhớ cache. Hoạt động vô hiệu hóa là không cần thiết, miễn là không có dữ liệu cũ được sử dụng.
Bạn có thể giải thích một chút về mô hình của mình và những gì được lưu trong bộ nhớ cache - cũng như cách bạn xác định các khóa bộ nhớ cache? – Marcanpilami
@Marcanpilami Tôi đã cập nhật câu hỏi. – guettli
Bạn vui lòng cho biết mô hình TicketType của mình và những gì bạn đã đưa vào bộ nhớ cache của mình một cách rõ ràng? – Charlesthk