【发布时间】:2015-04-09 15:58:52
【问题描述】:
我使用 Redis 存储会话和存储缓存,我想实现“清除缓存”功能。
我有很多问题:
1) Redis 无法按模式删除 ("ENTITY_CACHE:*")
2)“flushall”同时删除缓存和会话(会话不应被删除)
3) 不推荐使用多数据库功能,所以我可能不会使用“flashdb”
4)按模式(“ENTITY_CACHE:*”)获取所有键,然后删除每个键 - 对我来说这是不好的做法,这些键的数量可能超过一百万......
$redis->delete($redis->keys('ENTITY_CACHE:*'))
我更喜欢的唯一解决方案是: 使用多个 Redis 实例,为 Session 和 Cache 分开实例。但我不确定这是否是一个好的解决方案
你能给我一些建议吗?
【问题讨论】:
-
出于好奇,你在redis中缓存一百万个什么?
-
一般来说,缓存意味着大量的条目,我使用ZF2 Cache Storage,它不提供访问RedisClient实例的权限,它是受保护的属性