Laravel8设置REDIS_PREFIX后订阅消息无效?
描述
我设置了Laravel的REDIS_PREFIX=test_prefix_
,它在存储key
的时候确实自动转化为了test_prefix_key
的格式,但我也因此不能在应用中使用redis的订阅功能。
过程和相关代码
.env
//.env
REDIS_PREFIX=test_prefix_
Commonds/RedisSubscribe.php
// Commonds/RedisSubscribe.php
public function handle()
{
Redis::psubscribe(['channel.*'], function ($message) {
$this->output->writeln($message);
});
}
redis-cli
redis-cli>publish channel.1 hello
当我在redis客户端发布一个hello
消息时,在另一个redis客户端使用psubscribe
订阅channel.*
是可以得到hello
消息的,但是在应用中却不能。
Console
报错信息不明确,如下:
我将REDIS_PREFIX
改为等于空,则应用中的订阅也能正常工作。
我不太理解前缀是如何影响订阅的,有人清楚原因是什么吗?我该如何在使用前缀的情况下正确使用应用的订阅呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
加前缀
另外你用redis命令
MONITOR
看一下就知道原因了