·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

DX3.4 报 Call to undefined method Redis::getMultiple() 无法开启redis扩展 New

106 3

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
整不会了
系统Debian12和Ubantu22 搭 宝塔9.0.0和9.4.4
这个做实验的是全新的Discuz_X3.4_SC_UTF8_20230520版本

DX3.4 报 Call to undefined method Redis::getMultiple() 无法开启redis扩展
New
 无法启动redis
DX3.4 报 Call to undefined method Redis::getMultiple() 无法开启redis扩展
New
 无法启动redis

我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论3

拾光Lv.8 发表于 2025-3-3 18:11:48 | 查看全部
X3.5的 开始redis扩展 就一切正常

X34和X35在同一个站点内不同二级目录里
DX3.4 报 Call to undefined method Redis::getMultiple() 无法开启redis扩展
New
 无法启动redis
DX3.4 报 Call to undefined method Redis::getMultiple() 无法开启redis扩展
New
 无法启动redis
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-18 17:40:46 | 查看全部
你好,根据你描述的问题,`Call to undefined method Redis::getMultiple()` 这个错误通常是由于 PHP 的 Redis 扩展版本与 Discuz! 的 Redis 缓存类不兼容导致的。`getMultiple()` 方法是 Redis 扩展中的一个方法,但在某些版本的 Redis 扩展中可能不存在。

### 解决方法:

1. **检查 Redis 扩展版本**:
   首先,你需要确认你安装的 Redis 扩展版本是否支持 `getMultiple()` 方法。你可以通过以下命令查看 Redis 扩展的版本:
  
  1. php -m | grep redis
复制代码

   或者通过 `phpinfo()` 查看 Redis 扩展的详细信息。

2. **升级 Redis 扩展**:
   如果你使用的是较旧的 Redis 扩展版本,建议升级到最新版本。你可以通过以下命令升级 Redis 扩展:
  
  1. pecl install redis
复制代码

   或者通过宝塔面板的 PHP 管理界面,选择对应的 PHP 版本,点击“安装扩展”,然后选择 Redis 扩展进行安装或升级。

3. **修改 Discuz! 的 Redis 缓存类**:
   如果你无法升级 Redis 扩展,或者升级后问题仍然存在,你可以尝试修改 Discuz! 的 Redis 缓存类,避免使用 `getMultiple()` 方法。你可以找到 `source/class/class_redis.php` 文件,将 `getMultiple()` 方法替换为其他兼容的方法。

   例如,你可以将 `getMultiple()` 方法替换为多次调用 `get()` 方法:
  
  1. public function getMultiple($keys) {
  2.        $result = array();
  3.        foreach ($keys as $key) {
  4.            $result[$key] = $this->get($key);
  5.        }
  6.        return $result;
  7.    }
复制代码


4. **检查 PHP 配置**:
   确保你的 PHP 配置文件中已经正确启用了 Redis 扩展。你可以通过编辑 `php.ini` 文件,确保有以下配置:
  
  1. extension=redis.so
复制代码


5. **重启 PHP 和 Web 服务器**:
   在修改完配置后,记得重启 PHP 和 Web 服务器(如 Nginx 或 Apache)以使更改生效。

### 总结:
这个问题通常是由于 Redis 扩展版本不兼容导致的。你可以通过升级 Redis 扩展或修改 Discuz! 的 Redis 缓存类来解决这个问题。如果你有其他问题或需要进一步的帮助,请随时联系我。

希望这些信息对你有帮助!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-18 17:41:46 | 查看全部
你好,根据你描述的问题,`Call to undefined method Redis::getMultiple()` 这个错误通常是由于 PHP 的 Redis 扩展版本不兼容导致的。`getMultiple()` 方法在较新的 Redis 扩展版本中已经被移除或替换为其他方法。

### 解决方法:

1. **检查 Redis 扩展版本**:
   首先,你需要确认当前安装的 Redis 扩展版本。可以通过以下命令查看:
  
  1. php -m | grep redis
复制代码

   或者通过 `phpinfo()` 查看 Redis 扩展的详细信息。

2. **降级 Redis 扩展版本**:
   如果你使用的是较新的 Redis 扩展版本(例如 5.x 或更高版本),可以尝试降级到 4.x 版本,因为 `getMultiple()` 方法在 4.x 版本中是存在的。

   你可以通过以下命令卸载当前 Redis 扩展并安装指定版本:
  
  1. pecl uninstall redis
  2.    pecl install redis-4.3.0
复制代码

   安装完成后,重启 PHP 服务:
  
  1. service php-fpm restart
复制代码


3. **修改 Discuz 代码**:
   如果你不想降级 Redis 扩展版本,可以尝试修改 Discuz 的代码,将 `getMultiple()` 方法替换为 `mget()` 方法。`mget()` 是 Redis 中用于获取多个键值的方法。

   找到调用 `getMultiple()` 方法的代码部分,将其替换为:
  
  1. $values = $redis->mget($keys);
复制代码


4. **检查 Redis 配置**:
   确保你的 Discuz 配置文件 `config/config_global.php` 中的 Redis 配置是正确的。例如:
  
  1. $_config['cache']['type'] = 'redis';
  2.    $_config['cache']['redis']['server'] = '127.0.0.1';
  3.    $_config['cache']['redis']['port'] = 6379;
  4.    $_config['cache']['redis']['pconnect'] = 1;
  5.    $_config['cache']['redis']['timeout'] = 0;
  6.    $_config['cache']['redis']['requirepass'] = '';
  7.    $_config['cache']['redis']['database'] = 0;
复制代码


5. **重启服务**:
   修改完配置或代码后,记得重启 PHP 和 Redis 服务:
  
  1. service php-fpm restart
  2.    service redis restart
复制代码


### 总结:
这个问题主要是由于 Redis 扩展版本不兼容导致的。你可以通过降级 Redis 扩展版本或修改 Discuz 代码来解决。如果你有其他问题,欢迎继续提问!

希望这些信息对你有帮助!如果有其他问题,欢迎随时联系。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.218.60.55,GMT+8, 2025-5-6 01:48 , Processed in 0.325414 second(s), 84 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表