该脚本适用于我的MAC,phpinfo()
显示php redis支持版本为:Redis版本2.2.5
我在PHP中的脚本是:
$script
= "
local count = redis.call('incr',KEYS[1])
if tonumber(count) == 1 then
redis.call('expire',KEYS[1],ARGV[1])
end
return count";
//$sha1_value = $this->conn->script('load', $script);
//var_dump($sha1_value);
if (FALSE === $this->conn->evalSha('e03b35e8ef29c5c746b1791ec7ae89e19f52156c', [
$key,
1800
], 1)
)
{
$this->conn->eval($script, [
$key,
1800
], 1);
}
我的服务器上没有运行的脚本,Redis版本的PHP是2.1.0。
问题是程序符合$this->conn->script()
或$this->conn->evalSha()
方法会终止进程,这很奇怪,因为没有打印出错误日志,当我使用{{1}编写代码时方式,异常消息也没有打印出来。
我检查了Redis的官方网站,它说:
try ... catch ...
(http://redis.io/commands/EVAL)
所以我很好奇,因为我服务器上的redis-cli版本已经是2.8.0,而我的MAC是3.0.2。
那我怎么能找出问题呢?