我有很多模型中存儲的能量測量記錄。在django中緩存處理過的數據
我的用戶需要經常訪問使用的能源報告,因此model.manager負責查詢大量記錄,應用需要大約2秒的算法,我測試了memcached,但是用沒有運氣,因爲一段時間後緩存的數據不可用,但用戶經常回頭看到相同的報告。所以我對這個性能問題的潛在解決方案是在一個名爲「ProcessedData」的模型中存儲處理過的數據(不僅僅是查詢集,而是算法應用之後的數據查詢集)。
因此,當用戶提示訪問能源報告時,負責的經理將首先查詢ProccessData,如果ProccessData.objects.filter(field1='field1').exist()
:返回的數據將直接傳遞給模板進行可視化。如果以前沒有要求的數據,負責的經理將必須應用算法並將請求發送回用戶。
這是一個好方法嗎?
當我使用作爲輸入我知道一個查詢,查詢的結果處理數據甚至當我使用johny-cache的memcache時,發送給用戶的請求也被緩存,當數據需要12小時後可能需要一天,在這種情況下並且取決於數據庫與其他用戶的交互量,最初緩存的已處理數據不可用。 – Jaime
你試過類似django-cache-utils的@cached裝飾器嗎?將它與自定義高速緩存後端結合,永不過期高速緩存(例如,由於django不支持「永遠」,因此實現了johnny高速緩存),並且持久化結果高速緩存 –