【问题标题】:Aerospike PHP Session Serializer igbinaryAerospike PHP 会话序列化器 igbinary
【发布时间】:2016-09-28 09:19:58
【问题描述】:

使用 Aerospike 作为 PHP 会话的后端,我想将默认序列化程序从“php”更改为“igbinary”。

这是我的堆栈:

  • Linux Debian Jessie 8.4
  • PHP 5.6.20
  • Aerospike 社区服务器 v3.8.2.3
  • PHP客户端库v3.4.8
  • igbinary v1.2.1

这是一个用于测试的简单示例 PHP 脚本:

<?php

ini_set('display_errors', 'on');
ini_set('error_reporting', E_ALL);
ini_set('session.save_handler','aerospike');
ini_set('session.save_path','sessions|sess|127.0.0.1:3000');

// Start session
session_start();

// Write session
$_SESSION['test'] = time();

// Read session
$db = new Aerospike(["hosts" => [[ "addr" => "127.0.0.1", "port" => 3000 ]]]);
$key = $db->initKey('sessions', 'sess', session_id());
$status = $db->get($key, $record);

echo htmlentities($record['bins']['PHP_SESSION']);

这按预期工作。这里的输出:

test|i:1464615088;

如果我用 wddx 更改会话序列化程序,它仍然可以工作:

<?php

[...]

ini_set('session.save_handler','aerospike');
ini_set('session.save_path','sessions|sess|127.0.0.1:3000');
ini_set('session.serialize_handler', 'wddx');

[...]

这是输出:

<wddxPacket version='1.0'><header/><data><struct><var name='test'><number>1464615227</number></var></struct></data></wddxPacket>

但是当我用 igbinary 更改序列化程序时,像这样:

<?php

[...]

ini_set('session.save_handler','aerospike');
ini_set('session.save_path','sessions|sess|127.0.0.1:3000');
ini_set('session.serialize_handler', 'igbinary');

会话值未保存(在 aerospike 中未找到行)。这是输出:

Notice: Undefined index: bins in /var/www/test.php on line 42

请注意,igbinary 似乎与默认的 PHP 会话后端(文件)配合得很好

#ini_set('session.save_handler','aerospike');
#ini_set('session.save_path','sessions|sess|127.0.0.1:3000');
ini_set('session.serialize_handler', 'igbinary');

[...]

echo $_SESSION['test'];
$_SESSION['test'] = time();

这输出“1464615840”左右(刷新后),如预期的那样。

为了将 igbinary 用作 Aerospike 会话的序列化程序,我是否缺少一些配置选项?

是否有人已经成功使用 igbinary 作为 Aerospike 的序列化程序?

【问题讨论】:

    标签: php session serialization aerospike


    【解决方案1】:

    有一个开放的pull request 可以修复它,可能会在即将推出的 PHP7 兼容版本中推出。

    【讨论】:

      猜你喜欢
      • 2011-12-26
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      相关资源
      最近更新 更多