Php 使用Predis,如何设置(即存储)多维关联数组?

Php 使用Predis,如何设置(即存储)多维关联数组?,php,redis,predis,Php,Redis,Predis,我将开始学习PHP中的Predis。在本指南中,他们提供了存储键值对的set()函数: 现在,我想使用predis缓存的数据是来自MongoDB数据库的多维关联数组,它看起来像 allRowsDataArray = array( row0 = array( key0 = value0, key1 = value1, ...so on ), row1 = array( field0 = value0, field1 = value1, .

我将开始学习PHP中的Predis。在本指南中,他们提供了存储键值对的
set()
函数:

现在,我想使用predis缓存的数据是来自MongoDB数据库的多维关联数组,它看起来像

allRowsDataArray = array(
  row0 = array(
    key0 = value0,
    key1 = value1,
    ...so on
  ),
  row1 = array(
    field0 = value0,
    field1 = value1,
    ...so on
  ),
  ...so on
)
所以为了在缓存中保存这个数组,当我

$redis->set('allRowsDataArray', $allRowsDataArray);
我收到以下异常/错误:

Warning: strlen() expects parameter 1 to be string, array given in /var/www/html/testProject/plugins/predis/predis/src/Connection/StreamConnection.php on line 390
Notice: Array to string conversion in /var/www/html/testProject/plugins/predis/predis/src/Connection/StreamConnection.php on line 391
Fatal error: Uncaught Predis\Response\ServerException: ERR Protocol error: invalid bulk length in /var/www/html/testProject/plugins/predis/predis/src/Client.php:370 Stack trace: #0 /var/www/html/testProject/plugins/predis/predis/src/Client.php(335): Predis\Client->onErrorResponse(Object(Predis\Command\StringSet), Object(Predis\Response\Error)) #1 /var/www/html/testProject/plugins/predis/predis/src/Client.php(314): Predis\Client->executeCommand(Object(Predis\Command\StringSet)) #2 /var/www/html/testProject/plugins/predis/index.php(110): Predis\Client->__call('set', Array) #3 {main} thrown in /var/www/html/testProject/plugins/predis/predis/src/Client.php on line 370

所以问题是我错过了什么?如何解决此问题?

Set
方法期望值为字符串。用于保存数据

$redis->set('allRowsDataArray', json_encode($allRowsDataArray));

并使用
json\u decode()
Redis

Set
方法中检索,期望值为字符串。用于保存数据

$redis->set('allRowsDataArray', json_encode($allRowsDataArray));
使用
json\u decode()
Redis

中检索需要字符串值,您可以使用数组,然后在检索时将其取消序列化。如果需要字符串值,则可以使用数组,然后在检索它时取消序列化。