2016-10-02 67 views
0

今天我在開發我的項目時遇到了問題。如何通過Memcache或Redis中的標記清除緩存?

比如我把喜歡的博客文章的一些數據通過高速緩存鍵= post_list_OFFSET_LIMIT,其中偏移和限制它通過分頁的動態數據內存緩存英寸

但我不能清除緩存由前綴post_list_當我加入新的崗位。緩存過期後將顯示新帖子。

Memcache沒有標記功能。標記支持可以通過自定義代碼添加。 Redis有這個功能嗎?通過前綴標記或刪除標記?

謝謝。

回答

1

您可以通過3種方式解決的Redis:

  1. 使用掃描命令:http://redis.io/commands/scan獲得符合模式的按鍵和刪除它們。 How to atomically delete keys matching a pattern using Redis
  2. 將到期時間設置爲鍵。 http://redis.io/commands/expire。所以它已經過時(已刪除)。
  3. 將驅逐策略設置爲lru,http://redis.io/topics/lru-cache。因此,當新密鑰需要空間時,redis本身會刪除舊密鑰。當且僅當您單獨使用redis作爲緩存時,這才起作用。
+0

謝謝。 SCAN功能可能會影響性能? – trauma

+0

沒有。因爲它阻塞,KEYS命令會給你帶來不好的表現。備用是SCAN命令 –