我使用redis在django應用中進行緩存。我也使用Django Rest Framework,這是我的問題。如果內容在緩存TTL過期之前發生更改,則更新緩存
我使用的緩存系統是這樣的:
from django.views.decorators.cache import cache_page
urlpatterns = [
...
url(r'^some_url/$', cache_page(CACHE_TTL)(SomeView.as_view())
...
]
這裏,SomeView
是從APIView繼承的類。
現在想象一下,我們向這個url發出一個請求,並且我們收到一個包含這個url返回的一個實例的json對象。
然後我們繼續刪除(使用django的管理界面)該對象,並再次發出請求。預期的結果是一個空的json對象,但是我收到的是同一個對象不變,同樣的情況發生在添加一個新對象時,響應仍然只有一個對象。
經過一段時間(緩存中的請求的TTL),結果是正確的。
那麼,我該如何告訴django緩存條目無效呢?
可能重複[在Django中過期視圖緩存?](http://stackoverflow.com/questions/2268417/expire-a-view-cache-in-django) – alazaro
@alzaro,它是不一樣的問題是真的,你所引用的問題的答案解決了我的問題,但最初的問題是不一樣的。我不想讓**過期緩存**,我希望**緩存得到更新**。 –