我正在尝试使用我的WWrdPress站点添加Redis对象现金服务器。我在redislabs.com上关注此article和我已经创建的帐户
根据教程,我的object-cache.php
文件有
define("WP_REDIS_BACKEND_HOST", "HOST_URL");
define("WP_REDIS_BACKEND_PORT", "12345");
define("WP_REDIS_BACKEND_DB", "DATABAES_NAME");
define("WP_REDIS_PASSWORD", "PA$$WORD");
和
347 $this->redis->auth( $redis['password'] );
348
349 if ( isset( $redis['database'] ) ) {
350 $this->redis->select( $redis['database'] );
351 }
但是我在第350行得到了这个错误
错误
[Sun Apr 30 19:54:30.579728 2017] [:错误] [pid 1750] [客户 162.158.26.98:21176] PHP警告:Redis :: select()期望参数1为整数,在第350行的/var/www/public/wordpress/wp-content/object-cache.php中给出字符串,referer: mysite.com/about-us /
我该如何解决这个问题?
答案 0 :(得分:0)
Redis Cloud和其他负责任的Redis-as-a-Service提供商仅支持默认数据库名称(或0)。只需从文件中删除349-351行,或define("WP_REDIS_BACKEND_DB", 0);
你会没事的。
答案 1 :(得分:0)
问题是strongly typed comparison of variables,这意味着phpredis
正在查找或数据库名称和端口的类型为integer
,但将它们放在""
makes them strings
中。当您将变量与===
与==
进行比较时,类型和值都将匹配,例如1 !== '1'
。
如Itamar所述,Redis数据库的“名称”实际上是数字,它们没有其他数据库那样的字符串名称。
尝试:
define("WP_REDIS_BACKEND_HOST", "HOST_URL");
define("WP_REDIS_BACKEND_PORT", 12345); // this is different
define("WP_REDIS_BACKEND_DB", 0); // this is different
define("WP_REDIS_PASSWORD", "PA$$WORD");