gpt4 book ai didi

php - PHP中如何将数组数据存入redis

转载 作者:可可西里 更新时间:2023-11-01 11:15:14 25 4
gpt4 key购买 nike

在我的项目中,我想将数组数据存储到redis中。

这里我用的是PHP。

首先,连接redis成功。然后我定义了一个数组,其名称应该是 info_g_1。

最后,我用mset函数来存储这个数组。

这是我的 PHP 代码:

<?php
$redis_obj = \common\Datasource::getRedis('instance1');//connect to redis successfully
$id = '1';
$r_goods = 'info_g_' . $id;
$r_goods = array(
'sys_status' => 'one',
'num_user' => 'two'
);

$redis_obj->mset($r_goods);

但不幸的是,它工作失败。我的redis里面没有info_g_1数据。

    $redis_obj->sadd('info_g_'.$id,'one');
$redis_obj->sadd('info_g_'.$id,'two');

并获取数据:

    $redis_obj->smembers('info_g_'.$id); //can get one and two.

但是这样一来,我不确定一个属于sys_status还是num_user。

谁能帮帮我?

最佳答案

变量 $r_goods 中的值在以下代码的下一行中被数组覆盖:

$r_goods = 'info_g_' . $id;
$r_goods = array(
'sys_status' => 'one',
'num_user' => 'two'
);

$r_goods 中的实际值为:

array(
'sys_status' => 'one',
'num_user' => 'two'
);

也可以设置为:

$redis_obj->set('info_g_' . $id, 'value to store');

更新:要添加多个键值对,mset 可以用作 set:

$redis_obj->mset($r_goods);

但是如果想把数组存储为key对应的值。然后需要先对json_encode数组进行设置,然后设置如下:

$redis_obj->set('key', json_encode(array('sys_status' => 'one', 'num_user' => 'two')));

并且可以检索为:

$array = json_decode($redis_obj->get('key'), true);

这背后的原因是,redis 只存储字符串而不存储其他数据类型。

关于php - PHP中如何将数组数据存入redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51076512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com