php - 在 redis 中设置布尔值导致 PHP 中出现 502 错误
问题描述
为什么 PHP 代码可以
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
$redis->set("testkeybool", false);
导致502错误?
2018/10/30 13:59:29 [error] 23512#0: *12 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: ..., server: my.host, request: "GET /test.php HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "..."
如果我将整数设置为布尔值,它可以正常工作
$redis->set("testkeybool", 0);
nginx 配置
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
PHP 版本 PHP 5.6.36
解决方案
这是因为 redis 只支持以下数据类型string, list, hash, set, sorted set, bitmaps, and hyperlogs
。当使用设置器$redis->set();
(设置键来保存字符串值)时,它需要采用其中一种数据类型的形式
尝试
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
$redis->set('testkeybool', 'false');
推荐阅读
- github - GitHub 存储库页面的自定义域
- python - Python 应用程序无法部署到 Heroku
- docker-compose - Docker Compose bind mount doesn't work in GitHub Actions
- c# - 字符串以顺序开始
- twitter - 如何让 Twitter 摘要卡不显示任何图像或默认图像?
- r - 如何创建抛硬币功能R
- java - 无法在我的 lwjgl3 游戏上获得 EasyFont 渲染
- java - Maven:找不到适合 jdbc::mysql://google 的驱动程序
- c++ - 在图形管道中执行剪辑的阶段是什么?
- r - 如何按包含某些字符的行名进行匹配,并在两个数据框中划分列值?