在Laravel 5.2中使用Redis缓存查询/路由,多环境下通过设置不同缓存prefix值实现缓存区分

我正在使用Redis查询Laravel 5.2中的路线。

在Laravel 5.2中使用Redis缓存查询/路由,多环境下通过设置不同缓存prefix值实现缓存区分

我在同一Web服务器上运行3个环境,即“生产”,“片段”和“开发”。

对于每个环境,我设置了不同的缓存前缀值,以使我可以连接到不同的环境。

在config/cache.php文件中,我更改了行

'前缀'=>'laravel',

到

'prefix'=> env('cache_prefix','laravel'),

然后在我的.env文件中,在每个环境中添加前缀

用于发展

cache_prefix =“ laraveldev”

舞台

cache_prefix =“ laravelstaging”

用于生产

cache_prefix =“ laravelproduction”

我知道我可以从命令行中删除缓存

PHP工匠缓存:清除

但是上面的代码将清除我所有环境的缓存。

我只想删除“ laraveldev”的缓存,但只留下“ laravelstaging”和“ laravelproduction”

如何清除特定环境的缓存?

缓存:Clear Command将删除与数据库连接相关的所有缓存。

如果要在多个实例中使用相同的Redis服务器,则可以为每个实例使用不同的REDIS数据库。

在.env文件中,您可以添加以下内容

对于您的生产环境

redis_database = 0

对于您的临时环境

redis_database = 1

对于您的开发环境

redis_database = 2

然后在redis部分的config \ database.php中更改此行。

到'数据库'=> env('redis_database',0),0),,

现在,您可以使用以下命令删除任何环境的缓存

PHP工匠缓存:清除

缓存:Clear Artisan命令是调用当前连接器上的冲洗功能的角色。由于高速缓存引擎功能的变化,我认为不可能选择性地使钥匙到期以保持高速缓存API多功能。像Redis这样的发动机提供了这样的功能,但是Memcached却没有。

如果您使用的是Redis,则可以修改默认连接器以将“扫描 / del”命令用于flush()方法。但这仍然不是很有效。

如果您的应用程序正确使用缓存,则不会重新生成缓存,因此不会引起任何问题。您永远不会期望某些数据会高速缓存,因为它们可能总是过期的。

当我执行PHP工匠缓存时:清除时,它清除了Redis中的所有内容。我再次测试。我看到的问题是,使用此应用程序的用户将收到不匹配的令牌错误,因为会话也已清除。

解决方案是在登台和开发环境中使用会话中的不同存储类型,因此清除缓存不会影响真实的时间用户。

我不能创建命令行以执行以下代码吗? $ redis = cache :: gedredis(); $ keys = $ redis->键(cache :: getprefix()。“ *”); }

当然,只要您的缓存中没有数千个键,这可能会导致它超过可用的内存,就可以了。直接与Redis交谈,您可以使用扫描 /匹配 /计数命令组合。

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

46阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

38阅读

php一句话木马,一句话木马ctf

2026年10月05日

40阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

43阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

41阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

38阅读