我使用Redis存储会话和缓存,并希望实现“清除缓存”功能。
我有很多问题:
1) Redis不能按模式删除("ENTITY_CACHE:*")
2)“刷新”同时删除缓存和会话(会话不应删除)
3)不推荐使用多个DB特性,因此我可能不会使用“flashdb DB”。
4)按模式("ENTITY_CACHE:*")获取所有键,然后删除每个键--对于我来说,这是一种错误的做法,计算这些键的数量可能超过一百万……
$redis->delete($redis->keys('ENTITY_CACHE:*'))
我喜欢的唯一解决方案是:使用Redis的多个实例,为会话和缓存分离实例。但我不确定这是否是个好办法
你能给我一些建议吗?
发布于 2015-06-02 19:27:34
但我不确定这是否是个好办法
我觉得是的。我在不同的实例上分离会话和缓存,因为它允许我为每个实例指定不同的内存限制(最大内存),并且驱逐更可控(它使用LRU算法)。此外,持久化设置似乎是实例范围的设置。注意,应该避免没有会话锁定的会话存储。我强烈建议在实现锁定时使用SncRedisBundle (而PHP扩展没有)。
这有用吗?
https://stackoverflow.com/questions/28417789
复制相似问题