雷迪斯。Php缓存+Php会话

雷迪斯。Php缓存+Php会话,php,session,caching,redis,Php,Session,Caching,Redis,我使用Redis来存储会话和缓存,我想实现Clear cache特性 我有很多问题: 1 Redis无法按模式实体\u缓存删除:* 2应删除缓存和会话。不应删除会话 3不推荐使用多数据库功能,因此我可能不会使用flashdb 4通过模式实体_缓存获取所有密钥:*然后,删除每个密钥-对我来说,这是一种糟糕的做法,这些密钥的数量可能超过一百万 $redis->delete$redis->keys'ENTITY_CACHE:' 我喜欢的唯一解决方案是: 使用Redis的多个实例,单独的实例用于会话和缓

我使用Redis来存储会话和缓存,我想实现Clear cache特性

我有很多问题:

1 Redis无法按模式实体\u缓存删除:*

2应删除缓存和会话。不应删除会话

3不推荐使用多数据库功能,因此我可能不会使用flashdb

4通过模式实体_缓存获取所有密钥:*然后,删除每个密钥-对我来说,这是一种糟糕的做法,这些密钥的数量可能超过一百万

$redis->delete$redis->keys'ENTITY_CACHE:'

我喜欢的唯一解决方案是: 使用Redis的多个实例,单独的实例用于会话和缓存。但我不确定这是否是一个好的解决方案

你能给我一些建议吗

但我不确定这是否是一个好的解决方案

我觉得是的。我在不同的实例上分离会话和缓存,因为它允许我为每个实例指定不同的内存限制maxmemory,而逐出使用LRU算法更加可控。此外,持久性设置似乎是实例范围的。请注意,应避免没有会话锁定的会话存储。我强烈建议使用它,因为它实现了锁定,而PHP的Redis扩展没有


这有帮助吗?

出于好奇,你在redis中缓存了一百万个什么?一般来说,缓存意味着大量的条目,我使用ZF2缓存存储,它不允许访问RedisClient实例,它是受保护的属性这是肯定的答案。缓存和数据库需要区别对待,这样做需要单独的实例