标签 redis 下的文章

今天用 composer require 一个库,报错,提示缺少 redis 扩展。

2024-04-16T10:35:05.png

我的 php 是用 homebrew 安装的,之前用的是 8.1,估计前不久升级了一下,现在看是 8.3 了。

于是尝试使用 brew install php@8.3-redis,发现没有这个包。

想了一下用 pecl 安装。

pecl install redis

一路使用默认选项,竟然很顺利地安装成功了。

2024-04-16T10:36:50.png

- 阅读剩余部分 -

我用 PHP 脚本写了一个订阅 redis 列表的命令,但我发现跑了没多久就连接失败退出了。

报错的提示是:read error on connection to 127.0.0.1:6379

试了两次发现时间差不多,估计是触发了 PHP 的某个默认配置。

好在现在有了 ChatGPT,不需要去慢慢查文档了。

问了一下 ChatGPT,给出的 4 个可能原因中,第三个非常 match:

如果在读取数据时连接突然中断,可能是由于连接超时、网络中断或 Redis 服务器故障引起的。在 PHP 中,可以使用 ini_set('default_socket_timeout', -1); 来设置无限制的超时时间,以确保连接不会因为超时而关闭。

在脚本之前加上 ini_set('default_socket_timeout', -1); 再跑,果然 work 了。

查了下 php.ini 的配置,默认的时间果然是 60 秒。

自从有了 ChatGPT,Google 变得没那么重要了。。。

如果用 Google,可能我还在翻 StackOverflow 或者 php.net 寻找问题的可能原因。

如果用 Bing,可能我还在关闭 CSDN 页面上的广告。

如果用百度,可能我又要被哪个卖课的骗进去了。

现在体会到 ChatGPT 发布后,Google 为啥那么着急了。。。

今天突然发现应用报错:

MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

- 阅读剩余部分 -