今天我在开发项目时遇到了问题。
例如,我通过缓存键 = post_list_OFFSET_LIMIT 将一些数据(如博客文章)放入内存缓存中,其中通过分页偏移和限制它是动态数据。
但是当我添加新帖子时,我无法通过前缀 post_list_
清除缓存。新帖子将在缓存过期后显示。
Memcache 没有标记功能。可以通过自定义代码添加标记支持。 redis有这个功能吗?按前缀标记或删除标签?
谢谢。
最佳答案
在redis中可以通过3种方式解决:
- 使用扫描命令:http://redis.io/commands/scan获取与您的模式匹配的键并删除它们。 How to atomically delete keys matching a pattern using Redis
- 为 key 设置过期时间。 http://redis.io/commands/expire .所以它在它的时间过期后就会过期(删除)。
- 将逐出策略设置为 lru,http://redis.io/topics/lru-cache .这样当新键需要空间时,redis 本身会删除旧键。当且仅当您单独使用 Redis 作为缓存时,这才有效。
关于php - 如何在 Memcache 或 Redis 中通过标签清除缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39819252/