2016-10-02 34 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命令 –