2

我正在尝试通过使用 HMSET 将 redis 与多维数组一起使用。
我的数组看起来像这样。

Array
(
    [t] => Hello
    [a] => This
    [c] => key
    [b] => 23
    [data] => Array
        (
            [1] => some value
            [more] => value
        )

)

有什么方法可以使用 predis 库以这种格式将数据存储在 redis 中。

4

2 回答 2

4

更好的方法是通过json_encodePHP 中的数组并将其存储Redis 中

$string = json_encode(Array
(
    [t] => Hello
    [a] => This
    [c] => key
    [b] => 23
    [data] => Array
        (
            [1] => some value
            [more] => value
        )   
));
于 2014-05-30T12:05:54.577 回答
3

是的,Redis 能够存储字符串,PHP 能够将(多维)数组序列化为字符串。

示例中的serialize函数可用于该确切工作,但只是示例性的,您可以使用任何将数据序列化为(二进制)字符串的序列化方法。

例如,您可以使用 JSON ( json_encode)、XML或在某些情况下implode可能适合。

$string = serialize(Array
(
    [t] => Hello
    [a] => This
    [c] => key
    [b] => 23
    [data] => Array
        (
            [1] => some value
            [more] => value
        )

));

$cmdSet = $redis->createCommand('set');
$cmdSet->setArgumentsArray(array('thisispredisdoingredis', $string));
于 2012-05-19T11:58:28.673 回答